Бинарное дерево (который раз), Нужна помощ с одной процедурой |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Бинарное дерево (который раз), Нужна помощ с одной процедурой |
onizuka1988 |
Сообщение
#1
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Реальное имя: Andrew Репутация: 0 |
Здравствуйте, искал уже подобную задачу, нашёл модуль для работы с ней, но там нету одной процедуры.
Вот сама задача: Разработайте программу работы с бинарным деревом. Программа должна содержать следующие процедуры, вызывае-мые из меню: - построение пустого дерева; - добавление нового элемента; - удаление указанного поддерева; - просмотр дерева в следующем порядке: левая ветвь, узел, правая ветвь. А вот там процедура которой у меня нету - удаление указанного поддерева Буду очень благодарен, если кто нибуть поможеш с данной программой (желательно целиком, но если нет - то можно и процедуру). |
volvo |
Сообщение
#2
|
Гость |
Цитата(onizuka1988 @ 22.12.2006 11:18) А вот там процедура которой у меня нету - удаление указанного поддерева Погоди... Есть же процедура "удаление дерева"? Так вот, если ее вызвать, вместо корня дерева передав ей узел, который (вместе со всеми его потомками) надо удалить - то это будет сделано... |
onizuka1988 |
Сообщение
#3
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Реальное имя: Andrew Репутация: 0 |
Погоди... Есть же процедура "удаление дерева"? Так вот, если ее вызвать, вместо корня дерева передав ей узел, который (вместе со всеми его потомками) надо удалить - то это будет сделано... Хм, для своей программы я использовал данную заготовку, где с помошью меню реализованы 11 функций для работы с бинарным деревом. Процедуру удаления дерева мне не удалось переделать. Не могли бы ли Вы мне в этом помоч? Буду очень благодарен. |
volvo |
Сообщение
#4
|
Гость |
Тогда показывай код инициализации и заполнения дерева, и код поиска ПОДдерева, которое надо будет удалить - я напишу, КАК его удалить...
|
onizuka1988 |
Сообщение
#5
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Реальное имя: Andrew Репутация: 0 |
Вот Процедура удаления самого элемента:
Непомню, где то сдесь на форуме брал это из программы, где есть все функции для работы с бинарным деревом. А вот процедура из Вашего модуля:
Так вот, как я понимаю, если одинаковых элементов в дереве не будет, то соответственно не обязательно нужна процедура поиска поддерева. Нужно переделать Вашу процедуру, просто указываеться элеменет, который нужно удалить, после чего удаляется заданный элемент и все его ветвления вправо и влево. Если сможете, помогите дописать. |
volvo |
Сообщение
#6
|
Гость |
А теперь подними глаза и перечитай мой пост выше... Ты сделал с точностью "до наоборот" - то, что я НЕ просил - ты привел, а то, что я ПРОСИЛ - нет... Вот и я сделаю точно так же - я не буду ничего отвечать, пока ты не научишься ЧИТАТЬ ответы... Я ж не просто так прошу тебя привести ТВОЙ вариант, неужели же не ясно??? Я все сделаю правильно (создание дерева, поиск поддерева), удалю как положено - приведу тебе функцию, ты скажешь "НЕ работает"... Мне это надо? Не надо... Вот и приведи СВОЕ заполнение/поиск поддерева (не надо всю программу, меня твой интерфейс НЕ ИНТЕРЕСУЕТ, я не могу читать программы с тем интерфейсом, который вы на него навешиваете - суть алгоритма теряется) - ТОЛЬКО заполнение дерева данными (причем сами данные - тоже), и поиск, ЧЕГО будем удалять...
|
onizuka1988 |
Сообщение
#7
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Реальное имя: Andrew Репутация: 0 |
А теперь подними глаза и перечитай мой пост выше... Ты сделал с точностью "до наоборот" - то, что я НЕ просил - ты привел, а то, что я ПРОСИЛ - нет... Вот и я сделаю точно так же - я не буду ничего отвечать, пока ты не научишься ЧИТАТЬ ответы... Я ж не просто так прошу тебя привести ТВОЙ вариант, неужели же не ясно??? Я все сделаю правильно (создание дерева, поиск поддерева), удалю как положено - приведу тебе функцию, ты скажешь "НЕ работает"... Мне это надо? Не надо... Вот и приведи СВОЕ заполнение/поиск поддерева (не надо всю программу, меня твой интерфейс НЕ ИНТЕРЕСУЕТ, я не могу читать программы с тем интерфейсом, который вы на него навешиваете - суть алгоритма теряется) - ТОЛЬКО заполнение дерева данными (причем сами данные - тоже), и поиск, ЧЕГО будем удалять... Ясно, вот тип дерева:
Вот добавление элемента: procedure addelem(var root:PTree;info:byte); Вот процедура для введение значения: function getint(ident:string):byte; Процедура удаление запускается с помощью
Поиск поддерева я считаю не нужен, просто вводим значение элемента и удаляемся всё что снизу от него. Надеюсь на этот раз я правильно ответил? |
onizuka1988 |
Сообщение
#8
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Реальное имя: Andrew Репутация: 0 |
Спасибо за ответы, решение уже найдено...
|
LP.by |
Сообщение
#9
|
проста_angEL Группа: Пользователи Сообщений: 21 Пол: Мужской Реальное имя: pasha Репутация: 0 |
а можна вапросик??
де найти решение этой задачи??? -------------------- <image deleted>
|
Текстовая версия | 18.09.2024 11:12 |