Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 13.10.2018
Сообщений: 1
1

Определить количество листьев на каждом уровне дерева итеративным способом

23.12.2018, 14:21. Просмотров 993. Ответов 1

Здравствуйте, необходима помощь. Необходимо написать процедуру, определяющую количество листьев на каждом уровне дерева итеративным способом и вывести эту информацию.

Вот код основной программы:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
Type  
U = ^BinTree; 
BinTree = record 
  inf : integer;
  depth: integer;
  l, r : U 
  end;
 
var
Der:U;
input, f1, output, f2: text;
i,i1,i2: integer;
c: char;
inf:integer;
depth:integer;
lev:string[10];
 
procedure InData(var Tree : U; depth,x: integer);
begin
   If Tree = nil then 
   begin
        new(Tree);
        tree^.l := Nil;
        tree^.r := Nil;
        tree^.depth:=depth;
        tree^.inf := x
     end
   else if x < tree^.inf then 
    InData(tree^.l,depth+1, x)
     else 
      InData(tree^.r,depth+1, x)
end;
 
procedure PrintTree(tree : U);
begin
     if Tree <> Nil then 
     begin 
      PrintTree(tree^.l); 
      write(tree^.inf : 4); 
      PrintTree(tree^.r) 
    end;
end;
 
procedure getDepthOfTree(tree : U);
begin
    if tree = nil then exit;
    if tree^.depth > depth then
        depth := tree^.depth;
    getDepthOfTree(tree^.l);
    getDepthOfTree(tree^.r);    
end;
 
begin
assign(input, 'in.txt');
reset(input);
While not eof(input) do
  begin
    readln(input,inf);
    InData(Der,1,inf);
  end;
 
printtree(der);
getDepthOfTree(der);
writeln;
writeln(depth);
 
end.
В текстовом файле находятся информация для дерева:
Код
7
8
12
5
3
2
9
1
0
10
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2018, 14:21
Ответы с готовыми решениями:

Определить количество узлов на каждом уровне данного бинарного дерева
Помогите с этой задачей) Определить количество узлов на каждом уровне данного бинарного дерева....

Определить число листьев дерева
Дерево формировать динамически. Заполнить двоичное дерево следующим образом: если число меньше или...

Посчитать количество листьев и неполных вершин заданного бинарного дерева
Всем привет. Нужна срочно помощь. Вот задание: 1.Посчитать количество листьев и неполных вершин...

Определить число листьев на каждом уровне дерева
Нужно составить такую функцию. Именно на каждом отдельном уровне, а не по дереву вообще.

1
4190 / 1992 / 2070
Регистрация: 10.12.2014
Сообщений: 7,619
24.12.2018, 09:42 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
procedure leafs(tree : U);
var a : array [0..1000] of Integer;
 
  procedure calculate(tree : U);
  begin
    if tree^.depth > a[0] then
      begin
        inc(a[0]);
        a[tree^.depth] := 0;
      end;
    if (tree^.l = nil) and (tree^.r = nil) then
      inc(a[tree^.depth])
    else
      begin
        if tree^.l <> nil then calculate(tree^.l);
        if tree^.r <> nil then calculate(tree^.r);
      end;
  end;
  
var i : Integer;
begin
  a[0] := 0;
  calculate(tree);
  for i := 1 to a[0] do
    WriteLn(i, ') ', a[i]);
end;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.12.2018, 09:42

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Подсчитать количество листьев дерева не на последнем уровне, имеющем листья.
Добрый день! Не могу разобраться со следующим: нужно подсчитать количество листьев не на последнем...

Определить число узлов на каждом уровне дерева
Я не силен в деревьях, помогите пожалуйста

Определить число узлов на каждом уровне дерева
Помогите пожалуйста, нужно определить число узлов на каждом уровне дерева. За ранее спасибо.

Определить количество вершин на к-уровне дерева
Дан указатель на корень дерева и натуральное число К. Определить количество вершин на к-уровне....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.