![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Людмила |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 43 Пол: Женский Репутация: ![]() ![]() ![]() |
нужно решить задачу, FAQ уже читала, пыталась сделать сама, ну просто ни чего не получается...
Разработать программу, которая определяет, равны ли два бинарных дерева. -------------------- хороших людей мало... полезных ещё меньше....
|
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата(Людмила @ 16.03.05 22:10) Разработать программу, которая определяет, равны ли два бинарных дерева. Значит, так... Алгоритм сравнения рекурсивный: два дерева равны, если корень одного дерева содержит такое же значение, что и корень второго дерева, и при этом равны соответствующие поддеревья. Пустые деревья равны по определению. Код function equal(p1, p2 : pptr) : boolean; begin if (p1=nil) and (p2=nil) then equal := true else if (p1<>nil) and (p2<>nil) then equal := (p1^.info= p2^.info) and equal(p1^.llink, p2^.llink) and equal(p1^.rlink, p2^.rlink) else equal := false end; где тип ptr - указатель на узел дерева... Если поле info содержит НЕ встроенный, а определенный пользователем тип данных, может понадобиться написание дополнительной функции сравнения 2-х переменных такого типа... ![]() |
Людмила |
![]()
Сообщение
#3
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 43 Пол: Женский Репутация: ![]() ![]() ![]() |
Цитата(volvo @ 17.03.05 2:41) Значит, так... Алгоритм сравнения рекурсивный: два дерева равны, если корень одного дерева содержит такое же значение, что и корень второго дерева, и при этом равны соответствующие поддеревья. Пустые деревья равны по определению. Код function equal(p1, p2 : pptr) : boolean; begin if (p1=nil) and (p2=nil) then equal := true else if (p1<>nil) and (p2<>nil) then equal := (p1^.info= p2^.info) and equal(p1^.llink, p2^.llink) and equal(p1^.rlink, p2^.rlink) else equal := false end; где тип ptr - указатель на узел дерева... Если поле info содержит НЕ встроенный, а определенный пользователем тип данных, может понадобиться написание дополнительной функции сравнения 2-х переменных такого типа... ![]() Спасибо огромное!!!! а как формировать эти деревья? как я поняла задание дерева происходит линейно, т.е. в строку, потом из этой строки и формируется дерево? -------------------- хороших людей мало... полезных ещё меньше....
|
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 15:30 |