Typ wskaźnikowy, to chyba (egzamin będę pisał na kartce, a nie na kompilatorze )
Kod: Zaznacz cały
type wsk=^wierzcholek;
wierzcholek=record
klucz:integer;
lewy,prawy,ojciec:wsk
end
Kod: Zaznacz cały
procedure drzewo (r:wsk; var h,a:integer);
var
hl, hp, al, ap:integer;
begin
if r=nil then
begin
h:=0;
a:=0;
end;
else
begin
drzewo(r^.lewy;hl;al);
drzewo(r^.prawy;hp;ap);
h:=hl+hp+1;
if hl=hp and hl<>0 then a:=al+ap+1
else
a:=al+ap;
end;
end.
function sprawdz (r:wsk):boolean;
begin
drzewo (r,h,a);
if a>0 then sprawdz:=true
else
sprawdz:=false;
end.