Помощь - Поиск - Пользователи - Календарь
Полная версия: Деревья
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
overkast
Доброго времени суток )
Возникли проблемы с ссылочными типами данных. Задача: добавить к дереву поиска элемент, если его не было.
Как я понимаю задачу: необходимо создать дерево поиска, пробежаться по нем, выяснить есть ли такой-то элемент в нем, если нету - вставить, распечатать дерево.
Что я имею? Я могу создать и распечатать дерево. Я нашел функцию поиска, но т.к. имею проблемы со знанием синтаксиса не могу пристроить её smile.gif У вас же хотел бы узнать процедуру добавления элемента в дерево, с небольшими комментариями. Сам искал-искал, но так и не разобрался.
Очень надеюсь на вашу помощь в доведении программы до ума. Вот все необходимые модули (в том числе функция поиска) и основная программа, которая только создает и распечатывает дерево поиска.

прошу прощения, если неправильно оформил тему. время позднее, уже не в силах осилить что-либо )



ПРОГРАММА,МОДУЛИ
Lapp
Цитата(overkast @ 26.05.2011 3:44) *
Возникли проблемы с ссылочными типами данных. Задача: добавить к дереву поиска элемент, если его не было.
Как я понимаю задачу: необходимо создать дерево поиска, пробежаться по нем, выяснить есть ли такой-то элемент в нем, если нету - вставить, распечатать дерево.
Что я имею? Я могу создать и распечатать дерево. Я нашел функцию поиска, но т.к. имею проблемы со знанием синтаксиса не могу пристроить её smile.gif У вас же хотел бы узнать процедуру добавления элемента в дерево, с небольшими комментариями. Сам искал-искал, но так и не разобрался.
Очень надеюсь на вашу помощь в доведении программы до ума. Вот все необходимые модули (в том числе функция поиска) и основная программа, которая только создает и распечатывает дерево поиска.

Твоя процедура CreateDerevo (странный способ - писать полслова по-английски, полслова по-русски)) по сути и есть добавление элемента (и лучше ее назвать типа AddLeaf). А проверка его наличия выполняется функцией Find. Так что тебе не надо писать никаких новых процедур, просто сделать
if Find(t,x) then CreateDerevo(t,x);
- и все )).

А почему ты поместил все в разные модули? blink.gif Это совершенно неосмысленно. Собери их все в один модуль для работы с дереврьями, да и все.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.