Wierzchołek w drzewie binarnym jest prawy, jeśli jego prawe poddrzewo ma rozmiar nie mniejszy od lewego poddrzewa. Napisz procedurę, która policzy liczbę prawych wierzchołków w drzewie binarnym. Rozmiar drzewa to liczba wierzchołków drzewa.
Typ wskaźnikowy:
Kod: Zaznacz cały
type wsk=^wierzcholek;
wierzcholek=record
klucz:integer;
lewy,prawy,ojciec:wsk
end
Kod: Zaznacz cały
procedure prawe (r:wsk; var h,n:integrer)
var
hl,hp,np,nl:integer;
begin
if r^.prawe=nil and r^.lewe=nil then h:=1
else
begin
hl:=0; hp:=0; np:=0; nl:=0;
prawe (r^.prawe, hp, np);
prawe (r^.lewe, hl, nl);
h:=hp+hl+1;
if hp>=hl then n:=nl+np+1 else n:=nl+np;
end;
end.