Пятница, 01.11.2024, 02:12
Сайт в разработке!
Приветствую Вас Биологический материал | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: Doomer  
ОПАМ
ShadeДата: Суббота, 12.05.2007, 17:26 | Сообщение # 21
Ламер
Группа: Проверенные
Сообщений: 17
Репутация: 0
Статус: Offline
Ну, а розбить процедуру PrintTree на 2 части как?
 
nCДата: Среда, 16.05.2007, 20:54 | Сообщение # 22
Admin
Группа: Администраторы
Сообщений: 26
Репутация: 3
Статус: Offline
program Project;
{$APPTYPE CONSOLE}
uses
SysUtils;

type
Ptr = ^Node; {тип}
Node = record {запись}
key: integer; {ключ,а лучше записать как значение листка. Умнее смотрится)}
left, right: Ptr; {левое, правое поддерево}
end;
var
n: integer;
root: Ptr; {корень дерева}
elem_value: integer;
elem_depth,depth,i: integer; {параметры для вывода дерева}
{получение дерева}
function get_tree(max_depth: integer; cur_depth: integer): Ptr;
var
newNode: Ptr; {новый елемент}
begin
if cur_depth = max_depth then
newNode := nil
else
begin
new(newNode);
with newNode^ do begin
inc(i);
key := i;
left := get_tree(max_depth, cur_depth+1);
right := get_tree(max_depth, cur_depth+1);
end;
end;
result := newNode;
end;
{вывод дерева}
procedure PrintTree(t: Ptr; h: integer);
var i: integer;
begin
if t <> nil then
with t^ do
begin
PrintTree(right, h+5);
for i := 1 to h do write(' ');
write(key);
writeln;
PrintTree(left, h+5);
end;
end;
procedure Resultat(t: Ptr; elem_value : integer; var depth, res : integer);
var i: integer;
cur_depth: integer;
begin
if t <> nil then
with t^ do
begin
cur_depth := depth+1;
Resultat(right, elem_value, cur_depth, res);
if key=elem_value then
res := cur_depth-1;
Resultat(left, elem_value, cur_depth, res);
end;
end;

{основная программа}
Begin
Write('Enter a depth of the tree : ');
Readln(n);
i := 1;
root := get_tree(n, 0);
Write('Enter value of the element, which you want to find : ');
readln(elem_value);
PrintTree(root, 0);
elem_depth := 0; depth := 0;
Resultat(root, elem_value, depth, elem_depth);
Writeln('Your element is on the ',elem_depth,' level under the root.');
readln;
End.

И будет тебесчастье!

happy

Сообщение отредактировал nC - Среда, 16.05.2007, 20:56
 
ShadeДата: Среда, 16.05.2007, 21:18 | Сообщение # 23
Ламер
Группа: Проверенные
Сообщений: 17
Репутация: 0
Статус: Offline
Ну Смелова теперь я тебе покажу devil !

Сообщение отредактировал Shade - Среда, 16.05.2007, 21:20
 
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Copyright MyCorp © 2024Хостинг от uCoz