[英]Binary Tree Double Order Traversal
任何人都可以向我解释双顺序遍历吗?
A
/ \
B E
/ \ / \
C D F G
双顺序遍历输出:ABCCBDDAEFFEGG
我对解释而不是代码感兴趣。
谢谢
假设您对双顺序遍历的解释感兴趣:
对于每次遍历,你
这里的所有都是它的。 如果您没有左子(例如C),则两个“访问节点”操作会重复发生,这就是您在输出中看到两个C的原因。
只是为了可视化(输出为粗体):
等等
主要是遍历树的递归方法(这里我们处理的是二叉树)
这是一个双阶遍历的算法:
算法DoubleOrder(root)
if(root不为NULL)
万一
说明:
最终输出:ABCCBDDAEFFEGG
我希望它可以帮助你理解整体概念! 我很高兴第一次回答堆栈溢出:)
想象一下,你正在走路,从根开始。
等等
这只是一种遍历内外的遍历。
在一个前序遍历的左右儿童访问之间,你访问根(因为你必须回到它进一步走),你可以认为叶子没有孩子的根,而null
会让你回去在任何时候(因此连续两次访问叶子,节点只有正确的孩子)。
递归:
1. Visit root of (sub)tree.
2. Visit left subtree.
3. Revisit root of (sub)tree.
4. Visit right subtree.
我无法想到它的应用程序,虽然我已经做了一些真正奇特的事情,一堆树上的节点(和链表)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.