前中后遍历序列口诀 知道前序遍历,中序遍历怎么求后序遍历?
知道前序遍历,中序遍历怎么求后序遍历?
分析过程:以下面的例子说明:已知二叉树的前序遍历序列和中序遍历序列分别为abdgcefh和dgbaechf,求二叉树和后序遍历序列。分析:前序遍历序列的第一个特征是根节点。对于中间顺序遍历,根节点位于中间顺序遍历序列的中间,左部分为根节点左子树的中间顺序遍历序列,右部分为根节点右子树的中间顺序遍历序列。一阶:abdgcefh-->abdgcefh中间阶:dgbaechf-->dgbaechf得出结论:a是树的根,a有左子树和右子树,左子树有BDG节点,右子树有CEFH节点。一阶:BDG-->bdg中间阶:DGB-->dgb得出结论:B是左子树的根节点,B没有右子树,但有左子树。一阶:DG-->dg中间阶:DG-->dg得出结论:D是B的左子树的根,D没有左子树,但有右子树。一阶:CEFH-->cefh中间阶:echf-->echf得出结论:C是右子树的根节点,C有左子树(只有e节点),右子树(有FH节点)。一阶:FH-->fh中间阶:HF-->F得出结论:F是C的左子树的根,F有左子树(只有h节点),没有右子树。将二叉树还原为:cdefgh后序遍历顺序:gdbehfca
首先,前序、中序、后序的遍历顺序要明确:前序:父节点、左子节点、右子节点;中序:左子节点、父节点、右子节点;后序:左子节点、右子节点,父节点;后序:左子节点,右子节点;后序:左子节点,右子节点;后序:左子节点,右子节点;后序:左子节点,右子节点;首先根据前序遍历,确定整个二叉树的根节点(前序的第一个节点);然后通过中间节点顺序遍历,整个二叉树可以根据根节点直接划分为两个子树。
此时,按照预序和中间序一步一步地绘制整个二叉树并不困难。然后我们可以编写后序遍历序列。例如:已知二叉树的前序遍历序列为bc D E F H,中序遍历序列为bd C E a H F,写后序遍历序列。根据预排序,树的根节点是a;根据中间顺序和根节点,B、D、C、E在根节点的左子树上,H、F在根节点的右子树上;通过对每个子树的逐步分析,树是a/b f/C H/De首先了解的概念:前序遍历:访问根节点的操作发生在遍历其左右子树之前。中间顺序遍历:访问根节点的操作发生在遍历其左右子树时。后序遍历:访问根节点的操作发生在遍历其左右子树之后。例:遍历dbcefgha后,为了遍历edcbahfg,先查找前序遍历(联机示例)解决方案:遍历dbcefgha后,先看a是总根节点,然后按顺序遍历edcbahfg找到a的位置,然后edcb在a的左分支,HFG在a的右分支。重复前两步,查找从最后一个位置对应点进行遍历后,依次找到左右分支进行遍历,最后得到aecdbhgf,然后自己验证
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。