2014-09-10 3 views
1

Для обхода двоичного дерева поиска используется итеративный алгоритм, который не использует вспомогательную память (стек, родительские указатели, посещенные флаги), известные как Morris Traversal. Существует ли аналогичный алгоритм для предпорядочных и постоперационных обходов?Двоичное дерево поиска итеративного обхода предварительного порядка без дополнительного хранилища

ответ

1

только разработал решение для обхода, может работать

Initialize current as root 
While current is not NULL 
If current does not have right child 
    a) print current root 
    b) Go to the left, i.e., current = current->left 
Else 
    a) print current root 
    a) Make the whole right sub-tree of current as the left node of the rightmost child in the left sub tree(inorder predecessor of current) 
    b) Go to the left child, i.e., current = current->left 

комментарий, если он есть что-то не так с алгоритмом

Смежные вопросы