二叉树的确定-创新互联
二叉树的四种遍历方法
成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站制作、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的思礼网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!先序遍历(根左右):可以想象为,一个小人以一棵二叉树根节点为起点,沿着二叉树外沿,逆时针走一圈回到根节点,路上遇到的元素顺序,就是先序遍历的结果。
遍历结果:A B D H I E J C F K G
动图演示
中序遍历(左根右):可以看成,二叉树每个节点,垂直方向投影下来(可以理解为每个节点从最左边开始垂直掉到地上),然后从左往右数,得出的结果便是中序遍历的结果。
遍历结果:H D I B E J A F K C G
动图演示
3.后序遍历(根左右):按照先序遍历的路径把一串葡萄剪成一个一个的,遇到能剪下来的就把它剪下来。
遍历结果:H I D J E B K F G C A
动图演示
4. 层次遍历:从上到下 从左到右
遍历结果:A B C D E F G H I J K
图片展示
确定二叉树的两种方式:
(1)先序+中序
(2)后序+中序
现假设存在一棵二叉树,其先序、中序和后序遍历的结果如下:
先序遍历:ABDEGCFH
中序遍历:DBGEACFH
后序遍历:DGEBHFCA
在介绍如何利用遍历方式唯一确定一棵二叉树之前,需要重点强调:无论利用什么方式来唯一确定一棵二叉树,其本质都是通过两种遍历结果来不断递归地确定根结点和划分左右子树的过程!
先序遍历+中序遍历
先序遍历+中序遍历的要义是:利用先序遍历确定根结点,再利用中序遍历划分左右子树
步骤一:分析整棵二叉树
对于先序遍历,其遍历方式是一个结点需要先访问自己,再访问其左子树,接着才是其右子树,故先序遍历结果中的第一个元素一定是根结点,根据上述先序遍历可以知道是A。 接着利用得到的A,在中序遍历结果中找到A所在的位置,然后便可以将A左侧的所有元素归属到根结点的左子树,A右侧的所有元素归属到根结点的右子树,而之所以这样做,是因为对于中序遍历,其遍历方式是一个结点先访问其左子树,再访问自己,接着才是其右子树,所以A前面的元素一定来自A的左子树,A后面的一定来自A的右子树。 根据上述分析,可以先画出如下图片:
步骤二:分析A的左子树,即包含DBGE的这棵二叉树。
这时可以把包含DBGE这四个元素的先序遍历部分和中序遍历部分单独提取出来:
部分先序遍历:BDEG
部分中序遍历:DBGE
现在单独观察包含DBGE的这棵树和它对应的部分先序遍历、部分中序遍历,可以看到接下来的分析方式又与步骤一是一模一样的了,即先确定这个树(仅包含DBGE的这棵树)的根结点,再确定它的两棵子树,现在根结点是部分先序遍历的第一个元素,即B,根据B,在部分中序遍历中划分左右子树,即左子树包含D,右子树包含GE,得到的图片如下:
可以看到这时B的左子树只有一个结点,所以可以认为已经确定好了,那么就只需要按照步骤一的方式对B的右子树进行同样的分析即可。
步骤三:分析A的右子树,即包含CFH的这颗二叉树。
这时可以把包含CFH这三个元素的先序遍历部分和中序遍历部分单独提取出来:
部分先序遍历:CFH
部分中序遍历:CFH
现在单独观察包含CFH的这棵树和它对应的部分先序遍历、部分中序遍历,可以看到接下来的分析方式又与步骤一是一模一样的了,即先确定这个树(仅包含CFH的这棵树)的根结点,再确定它的两棵子树,现在根结点是部分先序遍历的第一个元素,即C,根据C,在部分中序遍历中划分左右子树,即左子树为空,右子树包含FH,得到的图片如下:
可以看到这时C的左子树没有一个结点,所以可以认为已经确定好了,那么就只需要按照步骤一的方式对C的右子树进行同样的分析即可。
步骤四:得到一颗完整的二叉树。
根据上述步骤,完整地走一遍流程,便可以得到如下的一棵二叉树:
后序遍历+中序遍历
后序遍历+中序遍历的要义是:利用后序遍历确定根结点,再利用中序遍历划分左右子树\n\n其实后序遍历+中序遍历唯一确定一棵二叉树的方法与先序遍历+中序遍历唯一确定一棵二叉树的方法本质上是一样的,唯一不同在于,利用后序遍历+中序遍历唯一确定一棵二叉树的方法在每次确定根结点时,需要对后序遍历的结果从后往前看,比如对于上述例子中的后序遍历:DGEBHFCA,第一步确定根结点时,需要取最后一个元素,因为后序遍历是最后才访问根结点,所以此时根结点的位置就是最后一个,而其他步骤就与先序遍历+中序遍历唯一确定一棵二叉树的方法是一样的。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
分享题目:二叉树的确定-创新互联
文章转载:http://scyanting.com/article/csjhgc.html