Poprzednik węzła drzewa binarnego. Dokladnie powiem ci w czym problem: z drzewka, które on narysowal: jeśli wg jego definicji szukałabym poprzednika wezla, które posiada lewego syna to dla trojki poprzednikiem musiałaby być 1 a jest przeciez dwojka.
Czyli ja jego algorytm zmodyfikowałam i zapisałam tak:
Function PoprzednikWezla( var wartość: wezel): wezel
Var Biezacy Wezel: wezel
Begin
BiezacyWezel:=wartość
IF BiezacyWezelMaLewegoSyna=false
THEN BiezacyWezel:=OjciecBiezacegoWezla
IF BieżacyWezel<wartość
PoprzdnikWezla:=BieżacyWezel
ELSE PoprzednikWezla:=OjciecBieżacegoWezla
End
ELSE BiezacyWezel:=LewySyn
IF BiezacyWezel=NIL
THEN PoprzednikWezla:=BiezacyWezel
ELSE repeat
BieżacyWezel:=PrawySyn
UNTIL BiezacyWezel=NIL
wige