数据结构中已知前序序列和中序序列,怎么得出后序序列?
首先要明确前序、中序、后序的遍历顺序:前序:父节点、左子节点、右子节点;中序:左子节点、父节点、右子节点;后序:左子节点、右子节点、父节点;首先根据前序遍历,确定整个二叉树的根节点(前序的第一个节点),然后通过中间序遍历,将整个二叉树按根节点直接划分为两个子树。
此时,按照预序和中间序一步一步地绘制整个二叉树并不困难。然后我们可以编写后序遍历序列。例如:已知二叉树的前序遍历序列为bcdefh,中序遍历序列为bdceahf,写后序遍历序列。根据预序,树的根节点是a;根据中间序和根节点,b、d、c、e在根节点的左子树上,h、f在根节点的右子树上;通过逐步分析每个子树,树是a/╲bf/╲ch/╲de,后置顺序为:decbhfa
中间顺序与后置顺序相同
空树或缺少正确子树的单分支二叉树。
中间顺序与上一顺序相反
任何节点都没有左个子节点。
中序序列怎么看?
一般可以先恢复二叉树,然后通过遍历得到后序序列。恢复过程如下:首先,前序序列中的第一个是根。得到中间顺序后,中间顺序可分为三部分:左子树的中间顺序、根和右子树的中间顺序。然后,左子树的中间阶和右子树的中间阶可以返回到前序序列,这些子树的中间阶可以在前序序列中分成三部分,子树的根仍然在第一位,它返回到子树的中间顺序进行剪切,直到所有子树只有一个节点
原文标题:二叉树的前序序列 数据结构中已知前序序列和中序序列,怎么得出后序序列?,如若转载,请注明出处:https://www.saibowen.com/wenda/18543.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「赛伯温」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。