Помощь - Поиск - Пользователи - Календарь
Полная версия: Бинарные деревья
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
zmt
Привет, ребята!
Совсем замучилась с двумя задачами.
1) описать процедуру, проверяющую на равенство два дерева (деревья равны, если ключи и записи вершин одного дерева соответственно равны ключам и вершинам второго);
2) на стоянке стоят автобомили с номерами 1212,3451,7694,4512,4352,8732,7326,2350,4536,2387,5746,6776,4316,1324; для сатистики нужно составить список автомобилей с такими номерами, что сумма двух первых цифр равна сумме двух послдних, так, чтобы каждый следующий номер был меньше предыдущего (нужно воспользоваться деревом бинарного поиска).

Знаю, что надо было попробовать решать самой, но преподавателем совершенно не были освещены эти темы blink.gif Могу только проводить над деревьями простейшие операции, а в этом полный ноль...

Plz, помогите rolleyes.gif
Заранее спасибо.
volvo
Цитата
описать процедуру, проверяющую на равенство два дерева
Процедуру? Функцию я делал вот тут:
деревья

Процедуру - не вижу смысла, результат возвращать все равно надо...
zmt
Volvo, спасибо!
Теперь надо попробовать убедить препода в том, что тут удобнее работать с функцией... Слишком уж она упрямая...
volvo
Цитата
надо попробовать убедить препода в том, что тут удобнее работать с функцией
Не будет убеждаться - сделай процедурой smile.gif
procedure isEqual(var equal: boolean; p1, p2: ttree);
var b_left, b_right: boolean;
begin
if (p1 = nil) and (p2 = nil) then equal := true
else if (p1<>nil) and (p2<>nil)
then begin
isEqual(b_left, p1^.left, p2^.left);
isEqual(b_right, p1^.right, p2^.right);
equal := (p1^.data = p2^.data) and b_left and b_right
end
else equal := false
end;
zmt
Volvo, ещё раз спасибо smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.