Обработка деревьев
- From
- Eduard Vatutin (2:5035/43.25)
- To
- ALl
- Date
- 2002-10-28T18:09:39Z
- Area
- RU.ALGORITHMS
_Приветик_ ALl!
Возникла необходимость реализовать сабж. Деревья произвольной арности, вершины дерева могут быть только 2 типов, листья в общем случае N типов. Порядок следования ветвей от каждой вершины *не важен*.
Необходимо проверить, является ли одно дерево поддеревом другого.
Пример:
A A
/ \ / \
_A_ B 2 1
/ \ |
_1_ _2_ 3
Правое дерево является поддеревом левого.
Затрудняюсь реализовать проверку...
Есть пара рекурсивных переборных вариантов, однако деревья могут быть достаточно большими, и тогда рекурсия будет буксовать.
Еще есть идея с приписыванием каждой вершине некоторого уникального в пределах дерева значения, однако как его считать до конца не ясно...
Может кто занимался чем-то подобным? Выручайте...
--- _/Пока, ALl/_
* Origin: Пришел, увидел и... ушел! (2:5035/43.25)