ВУЗ:
Составители:
Рубрика:
46
1
4
3
2
5 6 7 8 9 10 11 12
представляется в памяти следующим образом:
1
2 3 4
10 11 12
8 9
5 6 7
Для создания дерева воспользуемся вспомогательной рекурсивной функцией
CreateRandomTree, которая создает m уровней дерева и на каждом уровне соз-
дает n братьев:
function CreateRandomTree0(n,m: integer): PTreeNode;
// n - количество сыновей, m - количество уровней
var i: integer;
begin
Result:=nil;
if m=0 then exit;
for i:=1 to n do
Result:=NewNode(Random(100),
CreateRandomTree0(n,m-1),Result);
end;
Функция CreateRandomTree0 работает следующим образом: она создает
на данном уровне цепочку из
n братьев и привязывает к каждому из них в качест-
ве левого сына указатель на дерево, созданное CreateRandomTree0 с количе-
ством уровней на единицу меньше, чем в исходном дереве.
Чтобы на нулевом уровне был только один элемент (корень), создадим его
отдельно, привязав к нему в качестве указателя на левого сына структуру
, создан-
ную вызовом CreateRandomTree0. В результате получим функцию
CreateRandomTree для создания дерева с одним корнем, сделав функцию
CreateRandomTree0 локальной:
Страницы
- « первая
- ‹ предыдущая
- …
- 42
- 43
- 44
- 45
- 46
- …
- следующая ›
- последняя »