Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Равенство Деревьев

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
МаринА4ка



Зарегистрирован: 13.03.2007
Сообщения: 5
Откуда: Муром

СообщениеДобавлено: Пт Мар 16 2007 18:36    Заголовок сообщения: Равенство Деревьев Ответить с цитатой

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

uses crt;
type Ptr=^TNode;
Tnode=record
Left:Ptr;
Right:Ptr;
Info:Integer;
end;

var
t,t2,equalt:Ptr;
nh,max,h,i:integer;
//создание первого дерева
procedure zadtree(var t:ptr; h,nh:integer);
begin
if h=5 then
begin
New(t);
t^.left:=nil;
t^.right:=nil;
t^.info:=random(20);
end
else
begin
new(t);
zadtree(t^.left,h+1,nh);
zadtree(t^.right,h+1,nh);
t^.info:=random(20);
end;
end;

procedure writetree(t:Ptr;h,nh:integer);
begin
if t=nil then exit;
if h=nh then
begin
Write(t^.Info,' ');
end
else
begin
writetree(t^.left,h+1,nh);
writetree(t^.right,h+1,nh);
end;
end;


//создание второго дерева

procedure zadtree2(var t2:ptr; h,nh:integer);
begin
if h=5 then
begin
New(t);
t2^.left:=nil;
t2^.right:=nil;
t2^.info:=random(1);
end
else
begin
new(t2);
zadtree(t2^.left,h+1,nh);
zadtree(t2^.right,h+1,nh);
t2^.info:=random(1);
end;
end;

procedure writetree2(t2:Ptr;h,nh:integer);
begin
if t2=nil then exit;
if h=nh then
begin
Write(t2^.Info,' ');
end
else
begin
writetree(t2^.left,h+1,nh);
writetree(t2^.right,h+1,nh);
end;
end;

procedure isEqual(var equal: boolean; t, t2: ptr);
var b_left, b_right: boolean;
begin
if (t = nil) and (t2 = nil) then equal := true
else if (t<>nil) and (t2<>nil)
then begin
isEqual(b_left, t^.left, t2^.left);
isEqual(b_right, t^.right, t2^.right);
equal := (t^.info = t2^.info) and b_left and b_right
end
else equal := false
end;

begin
//основная прога
begin
clrscr;
randomize;
//Выведение на экран первое дерево
t:=nil;
zadtree(t,1,nh);
for i:=1 to 3 do
begin
writetree(t,1,i);
writeln;
end;
//Выведение на экран второе дерево
t2:=nil;
zadtree(t2,1,nh);
for i:=1 to 3 do
begin
writetree(t2,1,i);
writeln;
end;
writeln('Эти деревья по любому не равны Smile))');
end;
end.

Вот вообщем то и все! Эта прога работает, но неправильно, если вы поняли конечно и пользователь не вводит значения, а хотелось бы чтобы вводил.
вообщем посмотрите кому не лень, буду очень благодарна :unsure:
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Jail



Зарегистрирован: 16.01.2007
Сообщения: 180
Откуда: Russia

СообщениеДобавлено: Вс Мар 25 2007 19:25    Заголовок сообщения: Ответить с цитатой

Возмите стандартный шаблон AVL дерева. Чё тут думать то. И тода деревья полюбому будут равны Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...