![]() |
|
Модераторы: Poseidon |
![]()
|
|
| KpoHyc |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 23.12.2006 Где: Санкт-Петербург Репутация: 1 Всего: 5 |
Есть класс для бинарного дерева, - нужно передалать его в многомерное дерево и немного исправить вывод.
допустим: (1) / | \ (2) (3)(4) / \ (5)(6) Нужно чтобы вывело: 1 2 5 6 /2 3 4 /1
Это сообщение отредактировал(а) KpoHyc - 22.1.2007, 11:13 --------------------
AScript + Pascal + C -> C++ ->C#Adobe Photoshop 7.0/CS 2.0 + GIMP+ Visual Studio .NET(sp1)/2005 pro(sp1) |
|||
|
||||
| PoloS |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 29.12.2006 Где: МО, г. Одинцово Репутация: 4 Всего: 5 |
какое дерево, когда ты написал класс работы с двусвязным списком или я не могу разобратся в твоей реализации... |
|||
|
||||
| KpoHyc |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 23.12.2006 Где: Санкт-Петербург Репутация: 1 Всего: 5 |
PoloS,
--------------------
AScript + Pascal + C -> C++ ->C#Adobe Photoshop 7.0/CS 2.0 + GIMP+ Visual Studio .NET(sp1)/2005 pro(sp1) |
|||
|
||||
| PoloS |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 29.12.2006 Где: МО, г. Одинцово Репутация: 4 Всего: 5 |
смотрим... insert вставляет элемент в "дерево". да?
получается список какой - то с вставкой с начала... бинарное дерево, это узел должен иметь указаетель на своего родителся и на левый и правый узел, для которого он является родителем. у тебя получается head prev указывает на n, а n, в качестве следуещего элемента указывает на head.... вывод:
у бинарного дерева 2 "наследника" а ты идешь по одной ветке next... вот я и говорю что реализация напоминает двусвязный список..
Это сообщение отредактировал(а) Alexeis - 24.1.2007, 10:23 |
||||||
|
|||||||
| KpoHyc |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 23.12.2006 Где: Санкт-Петербург Репутация: 1 Всего: 5 |
PoloS, читай все таки внимательней...я прошу передалать а не объяснить что там...
--------------------
AScript + Pascal + C -> C++ ->C#Adobe Photoshop 7.0/CS 2.0 + GIMP+ Visual Studio .NET(sp1)/2005 pro(sp1) |
|||
|
||||
| V.A.KeRneL |
|
|||
![]() Vadim A. Kazantsev ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 3.12.2006 Где: Moscow, Russia Репутация: 7 Всего: 14 |
Оно конечно, но... Ты говоришь, что «есть класс для бинарного дерева», а приводишь класс для L2List'а (двусвязного списка), который, если рассуждать абстрактно, с точки зрения теории графов, является одинарным деревом (вырожденный случай) [с сслыками на родителей]. Извини, конечно, что объясняем тебе, вмето того, чтобы «помочь» и переписать, но тебе реально трудно помочь в сложившейся ситуации!.. Проще было бы, если бы ты просто попросил написать классы, реализующие двоичное (бинарное) и «многомерное» деревья. -------------------- «C'est un pense-creux d'ici. C'est le meilleur et le plus irascible homme du monde...» © Ф.М. Достоевский, «Бесы» ---/)/)---(\.../)---(\(\ --(':'=)---(=';'=)---(=':') (")(")..)-(").--.(")-(..(")(") |
|||
|
||||
| KpoHyc |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 23.12.2006 Где: Санкт-Петербург Репутация: 1 Всего: 5 |
V.A.KeRneL, таГ легче? (испрвил код верхний). Извиняюсь - и в правду накосячил в коде
--------------------
AScript + Pascal + C -> C++ ->C#Adobe Photoshop 7.0/CS 2.0 + GIMP+ Visual Studio .NET(sp1)/2005 pro(sp1) |
|||
|
||||
| PoloS |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 29.12.2006 Где: МО, г. Одинцово Репутация: 4 Всего: 5 |
Завтра последний экзамен сдам и обещаю помочь с реализацией.
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 23 Всего: 459 |
PoloS, личные сообщения в ПМ пожалуйста.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| PoloS |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 29.12.2006 Где: МО, г. Одинцово Репутация: 4 Всего: 5 |
подобная проблема описана в 1 томе Кнута "Искусство программирования". Вот вырезки от туда:
Основные отличия деревьев от бинарных: 1) Дерево всегда имеет корень. 2) Каждый узел может иметь 0, 1, 2, 3, ... детей. Вот алгоритм "перевода" дерева в бинарное дерево (представление многомерных деревьев в виде бинарных деревьев) Пусть F = (T1, T2, ..., Tn) - некоторый лес деревьев. Тогда бинарное дерево B(F), соответствующее F, можно строго определить следующим образом: a) Если n = 0, то B(F) пусто. b) Если n > 0, то корень B(F) является корнем (T1); B(T11, T12, ..., T1m) является левым поддеревом дерева B(F), где T11, T12, ..., T1m - поддеревья корня (T1); B(T2, ..., Tn) является правым поддеревом дерева B(F). на прикрепленной картинке наглядно показано правило. я не стал переделывать твой "класс" (там структуры и функции), а написал свой параметризированный (чтобы работал с разными типами данных). Вот некоторые его ограничения: 1) дерево не может быть пустым (в узле root всегда есть данные) 2) Если удаляется узел, то автоматически удаляются все его поддеревья. 3) Значения в data не должны повторятся (иначе я не знаю что произойдет, но последствия будут это точно =) (хотя бы потому что функция удаления узла (и вставки) будет удалять первый попавшийся узел с совпавшим значением))
вот небольшой тест для класса:
сперва образуется дерево такое 1 / / \ \ 2 3 4 5 /| |\ 6 7 8 9 в памяти хранится как такое 1 / 2 \ 3 \ 4 / \ 6 5 \ 7 \ 8 \ 9 после удаления узла 4 в памяти так 1 / 2 \ 3 \ 5 фуф... ЗЫ. Класс не отлажен должным образом, так что не пинайте меня. Присоединённый файл ( Кол-во скачиваний: 16 )
_______.JPG 75,52 Kb |
||||
|
|||||
| PoloS |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 29.12.2006 Где: МО, г. Одинцово Репутация: 4 Всего: 5 |
KpoHyc, тебе уже не нужно это?
нах тогда я стока лопатил... |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |