![]() |
|
Модераторы: bsa |
![]()
|
|
| Alexey91 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 18.9.2008 Репутация: нет Всего: нет |
Здравствуйте!
Есть ли алгоритм преобразования дерева в линейный список. Что я под этим понимаю. Например, есть дерево 1 2 3 4 5 6 7 8 9 Нужно из него сделать список 1->next=2, 2->next=3, 3->next=4 и.т.д. т.е. узлы связываются в список последовательно слева направо, опускаясь на уровень вниз с каждым шагом. Или если не сложно подскажите как это можно реализовать. Естественно, что можно было бы создавать список изначально по мере добавления узлов в дерева. Но задача такова, что на вход подается дерево, у которого есть левый и правый дети например, struct tree { tree* left_child tree* right_child int data } T; Это сообщение отредактировал(а) Alexey91 - 21.12.2011, 20:51 |
|||
|
||||
| newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 3 Всего: 19 |
Это широко используемый алгоритм, называется flatten.
-------------------- You're face to face With man who sold the world |
|||
|
||||
| Alexey91 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 195 Регистрация: 18.9.2008 Репутация: нет Всего: нет |
Немного не то, но по ссылке http://rosettacode.org/wiki/Tree_traversal
Смотреть level order Как раз то, что нужно |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |