Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 3
Регистрация: 24.12.2009
Сообщений: 166
1

деревья

12.07.2010, 19:39. Показов 716. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброе время суток! помогите пожалуйста, не могу понять в чем проблема, хочу просмотреть построения дерева через модуль. все читает, но не выписывает дерево

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
unit t1;
 
{$mode objfpc}{$H+}
 
interface
type
tarray=array of word;
basetype=integer;
tree=^node; node=record
info:basetype;
left,right:tree; end;
var key,b,a:tarray;
 
 
procedure balltree(var p:tree; x:basetype) ;
procedure pr(p:tree;n :integer);
procedure init(n_:word);
procedure destroy;
 
implementation
var n:word;
procedure balltree(var p:tree; x:basetype) ;
 begin if assigned(p)
 then  begin
 if x<p^.info then balltree(p^.right,x);
 if x>p^.info then balltree(p^.left,x)
 else
   begin
new(p);
p^.info:=x;
p^.left:=nil;
p^.right:=nil;
end;end; end;
 
procedure pr(p:tree;n :integer);
var i: integer;
begin
if assigned(p) then begin
if p^.right<>nil then pr(p^.right,n+1);
for i:=1 to n do write('  ');
writeln(p^.info);
if p^.left<>nil then pr(p^.left,n+1);end
 ;   end;
 procedure init(n_: word);
var i, j: word;
begin
  n := n_;
  setlength(key,n*sizeof(word));
   for i := 1 to n do key[i] := 0;
end;
 
  procedure destroy;
var i: word;
begin
  finalize(key);
   end;
 
  begin end.

основная
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
program pr_t;
 
{$mode objfpc}{$H+}
 
uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
 
  {$ENDIF}{$ENDIF}
 t1 in 't1.pas';
  { you can add units after this }
 
 var i,n:word;
 root:tree;
 
{$IFDEF WINDOWS}{$R pr_t.rc}{$ENDIF}
 
begin
readln(n);
init(n);
 for i := 1 to n do begin
read(key[i]); end;
//balltree(root,key[i]);
 
pr(root,key[i]);
 
 readln;
 
destroy ;
 
 end.
 
[size="1"][color="grey"][I]Добавлено через 38 минут[/I][/color][/size]
или почему эта при построение идеально-сбалансированного не идет? пожалуйста помогите!
Program BalansTree;
Uses
  Crt;
Type
  Pt = ^Node;
  Node = record
       Data : integer;
       Left, Right : Pt;
  end;
Var
  n : integer;
  kd : Pt;
 
Function Tree(n : integer) : Pt;
Var
  NewNode : Pt;
  x, n1, n2 : integer;
Begin
  if n=0
    then
      Tree := Nil
    else
      begin
        n1 := n Div 2; end; begin
        n2 := n–n1–1;
        read(x);
        new(NewNode);
        with NewNode^ do
          begin
            Data := x;
            Left := Tree(n1);
            Right := Tree(n1);
          end;
        Tree := NewNode;
      end;
End;
Procedure PrintTree(t : Pt; h : integer);
Var
  i : integer;
Begin
  if t<>nil
    then
      with t^ do
        begin
          PrintTree(Left, h+1);
            for i := 1 to h do
              write(' ');
              writeln(Data:6);
              PrintTree(Right, h+1);
        end;
End;
Begin
  ClrScr;
 
  write('n=');
  readln(n);
  kd := Tree(n);
  PrintTree(kd, 0);
  readln;
End.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.07.2010, 19:39
Ответы с готовыми решениями:

Деревья, обход по ярусам
помогите пожалуйста сделать процедуру обход дерева по ярусам. например, если ярус четный,то...

Деревья принятия решения (Деревья классификации)
Доброго времени суток! Столкнулся с такой проблемой: требуется написать программу на Pascal для...

Деревья
Вопрос мой таков как из заданого бинарного дерева построить новое из его листьев? Вообще думала и...

Деревья
Помогите,плиз у меня задание Описать абстракный тип данных дерево и основные функции работы с ним...

0
12.07.2010, 19:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.07.2010, 19:39
Помогаю со студенческими работами здесь

Деревья
есть такое задание: во входном файле задана инфиксная форма арифметического выражения , содержащая...

деревья
помогите,пожалуйстааа...::gcray2: описать логическую функцию same(t),определяющую,есть ли в дереве...

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

Деревья
Дано упорядоченное дерево глубины N=4 , каждая внутренняя вершина которого имеет K (&lt; 10)...

Деревья
Дается неориентированное дерево из n вершин, определим расстояние между двумя вершинами как...

Бинарные деревья
Здравствуйте, помогите пожалуйста Условие: Построить дерево поиска с элементами – строками....


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru