М | В следующий раз делай название темы более информативным klem4 |
Сообщение отредактировано: klem4 -
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Help Me!, Бинарное дерево, нерекурсивный вариант |
B@®'o.K. |
Сообщение
#1
|
|||
Новичок Группа: Пользователи Сообщений: 14 Пол: Мужской Реальное имя: Виктор Репутация: 0 |
Народ, помогите мне, плиз. Как вывести все элементы бинарного дерева нерекурсивным методом??
Сообщение отредактировано: klem4 - |
|||
B@®'o.K. |
Сообщение
#2
|
Новичок Группа: Пользователи Сообщений: 14 Пол: Мужской Реальное имя: Виктор Репутация: 0 |
Неужели никто не может мне помочь??!!
|
B@®'o.K. |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 14 Пол: Мужской Реальное имя: Виктор Репутация: 0 |
Напишите плиз хотя бы код. Вот вам для помощи (я просто в этом мало понимаю):
1)Начальная установка: TOP:=0; P:=T. 2)Если P=nil, то перейти на 4. {конец ветви} 3)Вывести P^.info. Вершину заносим в стек: TOP:=TOP+1; A[TOP]:=P; шаг по левой ветви: P:=P^.llink; перейти на 2. 4)Если TOP=0, то КОНЕЦ. 5)Достаем вершину из стека: P:=A[TOP]; TOP:=TOP-1; 6)Шаг по правой связи: P:=P^.rlink; перейти на 2. Пожалуйста!! Очень надо!!! |
B@®'o.K. |
Сообщение
#4
|
Новичок Группа: Пользователи Сообщений: 14 Пол: Мужской Реальное имя: Виктор Репутация: 0 |
Пусть T – указатель на бинарное дерево; А – стек, в который заносятся адреса еще не пройденных вершин; TOP – вершина стека; P – рабочая переменная.
|
volvo |
Сообщение
#5
|
Гость |
var Нерекурсивное добавление (additer) взял отсюда: Создание бинарного дерева и обход |
B@®'o.K. |
Сообщение
#6
|
Новичок Группа: Пользователи Сообщений: 14 Пол: Мужской Реальное имя: Виктор Репутация: 0 |
А можно сделать описание ttree, а то я не знаю откуда оно взялось тут (т.е. с какиими параметрами), а также А сделать стеком, а не массивом. И, я думаю, процедуру добавления дерева можно убрать, т.к. мне нужно только вывести нерекурсивно. Пожалуйста, кто знает, исправте!! Буду очень благодарен.
Да и кстати. Это прога работает только наполовину (т.е. она выводит полдерева) Сообщение отредактировано: B@®'o.K. - |
volvo |
Сообщение
#7
|
Гость |
"Помочь" и "сделать все за тебя" - это немного разные вещи, тебе не кажется?
И вообще... Тот алгоритм, который ты привел, я запрограммировал. Слово в слово. Теперь выясняется, что тебе надо не на массивах, а на стеках. И добавление тебе, оказывается, тоже не надо. А проверять работу алгоритма ты что, теоретически будешь? Ну, так проверяй, значит тебе программа вообще не нужна. Добавлено через 4 мин. Цитата Это прога работает только наполовину (т.е. она выводит полдерева) Глазки открой, и посмотри на скриншот. Что ТЫ ожидал, что программа выведет?Эскизы прикрепленных изображений |
B@®'o.K. |
Сообщение
#8
|
Новичок Группа: Пользователи Сообщений: 14 Пол: Мужской Реальное имя: Виктор Репутация: 0 |
У меня уже ввод есть. Мне нужно только вывести нерекурсивно. У меня пользователь вводит сам числа дерева. А моя задача их вывести. Возможно ты просто неправильно меня понял. И поэтому если использовать как в твоём случае массив, то получается пользователь ограничивается числом вводимых элементов. Пожалуйста, если можно, исправьте эту прогу. Буду благодарен
|
Текстовая версия | 11.01.2025 0:10 |