Ну, если взять легкий вариант с бинарным деревом, где, как кто-то ниже уже указал, у узла не может быть двух родителей «первого уровня».
обычно такие деревья делаются через двойные связные списки, то есть простой проверкой p1.parent==p2 или p2.leftChild==p1 можно определить эту свзяь
если же интересует является ли узел p1 хоть каким-нибудь родителем узла p2 (то есть, если двигаться от узла p1 только вниз, можно ли добраться до узла p2), то алгоритм тоже получается простой (while iterator.next!=p2 бла бла), но в плане эффективности будет уже намного медленнее первого (O(logn))
:)
О да, мы имплементировали на яве простые деревья, двоичные, binary search trees и AVL-trees, и даже на финальном экзамене нужно было написать java-интерфейс для одной из таких структур
ничего сложного :)
скрещивать незнаю, пока в планах осветить другие часто-используемые типы деревьев и некоторые другие структуры для эффективного хранения данных
https://dl.getdropbox.com/u/72746/css/comp%202402/trees/Trees.ppt
обычно такие деревья делаются через двойные связные списки, то есть простой проверкой p1.parent==p2 или p2.leftChild==p1 можно определить эту свзяь
если же интересует является ли узел p1 хоть каким-нибудь родителем узла p2 (то есть, если двигаться от узла p1 только вниз, можно ли добраться до узла p2), то алгоритм тоже получается простой (while iterator.next!=p2 бла бла), но в плане эффективности будет уже намного медленнее первого (O(logn))
О да, мы имплементировали на яве простые деревья, двоичные, binary search trees и AVL-trees, и даже на финальном экзамене нужно было написать java-интерфейс для одной из таких структур
скрещивать незнаю, пока в планах осветить другие часто-используемые типы деревьев и некоторые другие структуры для эффективного хранения данных
был хакинтош, но это извращение.
а виста работает, угу :)
рабочий стол показывать минуту можно, если в течение этой минуты что-то рассказывается.