【数据结构】在二叉树中有两个结点m和n,若m是n的祖先,则使用后序遍历可以找到从m到n的路径
题干分析:首先要注意题目中说到的路径,不是在visit()时得到的序列,而是看某时刻栈中的序列。这里的路径是这样理解的,访问一个结点 x 时,栈中结点恰好是 x 结点的所有祖先,从栈底到栈顶结点再加上 x 结点,这样就构成了从根结点到 x 结点的一条路径。在王道数据结构P134中有讲到这句话。比如先序遍历的非递归算法,在n进栈之前,m就已经出栈了。中序也是同样的。下面以先序为例,对照代码,演示一下栈中元素的出入栈过程。void PreOrder(BiTree T){ InitStack(S
原创
2021-07-19 15:28:20 ·
7829 阅读 ·
6 评论