Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Алгоритмы > Представление свободного дерева в виде бинарного |
Автор: zim22 5.6.2009, 12:39 |
Необходимо из свободного дерева получить бинарное. Рисунок свободного дерева: http://xmages.net/show.php/258647_tree.gif.html Я пытался конвертировать(рис.ниже), но когда до точки № 9 дохожу - не понимаю, что делать дальше, т.к. в этой точке у нас три разветвления. А бинарные деревья ограничены двумя поддеревьями... Надеюсь на вашу помощь. http://xmages.net/show.php/258648_tree2.gif.html |
Автор: Soah 5.6.2009, 12:53 |
ИМХО, никак. zim22, зачем? может есть другое решение |
Автор: zim22 5.6.2009, 13:08 | ||||||
это задание из книжки "Фундаментальные алгоритмы на С++"(стр.225, задание 5.56) (Роберт Седжвик).
Я думаю решение есть 100%, т.к. в противном случае в задаче было бы дополнительно указано следующее
*** в англ.версии книги задание звучит так:
|
Автор: Soah 5.6.2009, 13:14 |
zim22, новые точки добавлять можно? 4 / \ p 5 / \ 6 9 |
Автор: zim22 5.6.2009, 13:21 | ||||
я над этим уже тоже думал. если точки добавлять - то можно будет представить дерево в бинарном виде ![]() *** скорее всего есть какая хитрость. я вот читаю книгу и вижу такие предложения:
|
Автор: Soah 5.6.2009, 13:37 |
посмотри рисунок 5.22 и представление дерева. |
Автор: DocBox 25.6.2009, 18:32 |
Необходимо строить так... для кажой вершины указывать. сына. и соседа. в вашем примере.. / - сын \ - сосед... 9 / 10 \ 11 \ 12 / 13 / 15 / \ 17 14 .. и тд. Надеюсь понятно обьяснил. |