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