1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| Rocket |
23.05.2009 8:45
Сообщение
#1
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 306 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
Использую реализацию, приведённую на сайте http://volvo71.narod.ru/faq_folder/bin_tree.htm.
Добавил случайную генерацию бинарного дерева (size вводим, а вершины - случайные числа). Вывожу графически, с помощью процедуры PrintTreeGraph.
Проблема в том, что не выводятся сами обходы: бинарное дерево строится, а затем программа просто ждёт нажатия клавиши. Подскажите пожалуйста, как это исправить? Или сделать вообще, чтоб вообще выводились эти обходы... |
![]() ![]() |
| volvo |
24.05.2009 11:44
Сообщение
#2
|
|
Гость |
А я уже поправил процедуры обходов, теперь они по крайней мере дают представление о структуре дерева, какой элемент находится на каком уровне (от этого зависит смещение):
; это вывод PrintDown Теперь насчет графики. Можно попробовать добавлять к значению каждого элемента в скобках номер, под которым он "обходился", но дело-то все в том, что это может привести к нечитабельному отображению, один лист может налазить на другой, может вообще перекрываться... Если это действительно нужно, вот такое тебя не устроит: ? То есть, дерево выводится, как и выводилось, но внизу печатается список вершин в порядке прохождения? |
| Rocket |
24.05.2009 13:50
Сообщение
#3
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 306 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
Теперь насчет графики. Можно попробовать добавлять к значению каждого элемента в скобках номер, под которым он "обходился", но дело-то все в том, что это может привести к нечитабельному отображению, один лист может налазить на другой, может вообще перекрываться... Если это действительно нужно, вот такое тебя не устроит: ? То есть, дерево выводится, как и выводилось, но внизу печатается список вершин в порядке прохождения? Всё-таки это опять просто вывод, тоже самое только в графическом режиме... Идея с добавлением в скобках довольно интересна и наглядна (пожалуй, лучшая альтернатива нумерации вершин). Но вот как оно отображаться-то будет, это камень преткновения. А если ограничить количество вершин, скажем до 15, и расчитать как дерево будет выводится, чтобы без накладок? Вот ещё один вариант: по очереди отмечать вершину другим цветом? |
Rocket Обход бинарного дерева 23.05.2009 8:45
volvo Посмотреть внимательно, и увидеть, что PrintTreeGr... 23.05.2009 9:52
Rocket
Посмотреть внимательно, и увидеть, что PrintTreeG... 23.05.2009 22:14
volvo Оно тебе надо, делать это? Как ты форматировать эт... 24.05.2009 0:08
Rocket
Оно тебе надо, делать это? Как ты форматировать э... 24.05.2009 10:46
volvo Вот такой вариант:
procedure PrintTreeGraph(Root: ... 24.05.2009 14:08
Rocket Вот такой вариант:Идеальна!!! Супер по... 24.05.2009 17:10
volvo На скриншоте - концевой обход дерева. Ну, почти. В... 24.05.2009 20:42
Rocket
На скриншоте - концевой обход дерева. Ну, почти. ... 24.05.2009 21:15
volvo Угу... Причем это обязательно должен быть концевой... 24.05.2009 22:05
Rocket
Угу... Причем это обязательно должен быть концево... 24.05.2009 22:50
volvo Угу.. Ветку if Root^.Left <> nil перенести в... 24.05.2009 22:57![]() ![]() |
|
Текстовая версия | 9.12.2025 4:11 |