Zdravim, vsecky bombardaky mam tuhle funkci na pruchod binarnim stromem a najiti otce prvku "hledany".
kod
function TAbsBSTree.ZpristupniOtce(prvek,hledany:TAbsBSTreeItem):TAbsBSTreeItem; //preorder
begin
if (JePrazdny) then
Result:=nil
else
begin
if (prvek=nil) then
Exit
else if (prvek=hledany) then
Result:=prvek
else if ((prvek.GetLevy=hledany) OR (prvek.GetPravy=hledany)) then
Result:=prvek
else
begin
ZpristupniOtce(prvek.GetLevy,hledany);
ZpristupniOtce(prvek.GetPravy,hledany);
end;
end;
end;
Vzdycky toho otce najdu ale pak mam problem tu adresu dostat az na prvni uroven toho rekuzni volani takze vysledku se mi
preda nejaka nesmyslna hodnota...Potreboval bych pichnout :-)
Fórum › Delphi
Rekurzní fce, problém
napadlo mě:
function TAbsBSTree.ZpristupniOtce(prvek,hledany:TAbsBSTreeItem):TAbsBSTreeItem; //preorder
begin
Result:=nil;
if (prvek=nil) then
Exit
else if (prvek=hledany) then
Result:=prvek // tohle ale nevraci otce, bych vypustil celou podminku
else if ((prvek.GetLevy=hledany) OR (prvek.GetPravy=hledany)) then
Result:=prvek
else
begin
result:=ZpristupniOtce(prvek.GetLevy,hledany);
If result=nil then
result:=ZpristupniOtce(prvek.GetPravy,hledany);
end;
end;
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 22 hostů
Podobná vlákna
Problém s identifikací fce — založil bird
Problém s vytvořením fce na výpis z databáze — založil Radek
Spuštění jiné fce bez zastavení stávající fce — založil Lukáš
Skok z fce do fce — založil Fcelik