ВУЗ:
Составители:
18
Пример 3.7. Описать рекурсивную процедуру Leaf подсчета количества k
листьев дерева.
procedure Leaf( T : Tree; var k : integer);
begin
if T <> nil then
if (T^.L=nil) and (T^.R=nil) then
k:=k+1
else
begin
Leaf(T^.L,k);
Leaf(T^.R,k)
end
end; { Leaf }
Количество List листьев дерева Root можно определить, обратившись к
процедуре Leaf :
List:=0; Leaf(Root,List);
Если описать реализацию в виде функции, то не придется заботиться о
присваивании нуля параметру–результату перед ее вызовом.
function fLeaf ( T: Tree ) : integer;
begin
if T=nil then fLeaf:=0
else
if (T^.L=nil) and (T^.R=nil) then
fLeaf:=1
else fLeaf:= fLeaf(T^.L)+fLeaf(T^.R)
end {fLeaf};
Страницы
- « первая
- ‹ предыдущая
- …
- 14
- 15
- 16
- 17
- 18
- …
- следующая ›
- последняя »