Препарирование бинарных деревьев
От: Кодт Россия  
Дата: 04.10.05 08:22
Оценка:
Здравствуйте, все.

А вот такая постановка задачи:

Дано двусвязное бинарное дерево (т.е. дочерние узлы знают о родительских).

Пусть мы хотим выполнить обход в ширину, не заводя никаких дополнительных структур.
Вопрос: можно ли, и если да, то как, воспользоваться самими узлами дерева.

Естественно, на время работы мы изменяем дерево, превращая его либо в другое дерево, либо вообще не в древовидную структуру.
Можно ли сделать это обратимым способом, чтобы по окончании мы вернули дерево в исходное состояние?

Можно ли построить дерево, чей поперечный обход соответствует обходу в ширину исходного дерева?
Можно ли сделать это так, чтобы восстановить по нему исходное дерево?
(Поперечный обход — от крайне левого узла через родителя к крайне правому — имеет эффективное решение, требующее O(1) памяти и кумулятивно O(N) времени).


04.10.05 14:02: Ветка выделена из темы Препарирование бинарных деревьев
Автор: _wind_
Дата: 29.10.04
— Кодт
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.