void BinarySearchTreesZH::preorderTraversalNoRecursion(Node
*node
)
{stack
<Node
*> stk
;if (node
== nullptr){return;}stk
.push(node
);while (stk
.size() != 0){Node
*top
= stk
.top();cout
<< stk
.top()->element
<< " ";stk
.pop();if (top
->right
!= nullptr){stk
.push(top
->right
);}if (top
->left
!= nullptr){stk
.push(top
->left
);}}
}
void BinarySearchTreesZH::inorderTraversalNoRecursion(Node
*node
)
{if (node
== nullptr){return;}stack
<Node
*> stk
;stk
.push(node
);while (stk
.size() != 0){while (node
->left
!= nullptr){stk
.push(node
->left
);node
= node
->left
;}Node
*top
= stk
.top();cout
<< top
->element
<< " ";stk
.pop();if (top
->right
!= nullptr){node
= top
->right
;stk
.push(top
->right
);}}
}
void BinarySearchTreesZH::postorderTraversalNoRecursion(Node
*node
)
{if (node
== nullptr){return;}string s
= " ";stack
<Node
*> stk
;stk
.push(node
);Node
*top
= stk
.top();while (stk
.size() != 0){top
= stk
.top();stk
.pop();s
= s
+ to_string(top
->element
) + " ";if (top
->left
!= nullptr){ stk
.push(top
->left
);}if (top
->right
!= nullptr){stk
.push(top
->right
);}}reverse(s
.begin(), s
.end()); cout
<< s
;
}
總結
以上是生活随笔為你收集整理的2021 - 10 -7 ! 二叉树的前序、中序、后序遍历 非递归思路(迭代版本)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。