网站首页 >> 百科知识 >> 正文
简介: 本文目录怎么遍历二叉树怎么由先序和中序来找二叉树c语言编程实现二叉树的三种遍历知道中序和后序遍历,画二叉树和写出前序遍历一、怎么遍历二叉树1、前序遍历:按照“根左右”,先遍历根节点,再遍历左子树,再遍

二叉树中序遍历怎么看(二叉树的四种遍历方法)

本文目录

  1. 怎么遍历二叉树
  2. 怎么由先序和中序来找二叉树
  3. c语言编程实现二叉树的三种遍历
  4. 知道中序和后序遍历,画二叉树和写出前序遍历

一、怎么遍历二叉树

1、前序遍历:按照“根左右”,先遍历根节点,再遍历左子树,再遍历右子树

2、中序遍历:按照“左根右“,先遍历左子树,再遍历根节点,最后遍历右子树

3、后续遍历:按照“左右根”,先遍历左子树,再遍历右子树,最后遍历根节点

4、其中前,后,中指的是每次遍历时候的根节点被遍历的顺序

5、二叉树是一个相当重要的数据结构,它的应用面非常广,并且由他改进生成了很多重要的树类数据结构,如红黑树,堆等,应用价值之高后面深入学习便有体会,因此,掌握它的基本特征和遍历方式实现是学好后续数据结构的基础,理论方面其实我们看到二叉树的形状,我们自己画图都能总结出来,但是代码实现这一块,初学者不是很好理解,树的遍历利用了递归的思想,递归的思想本质无非就是循环, *** 调 *** ,所以,理解二叉树遍历的代码实现更好的方式就是按照它的遍历思想自己画出图来一步一步的遍历一遍,先把这个遍历过程想明白了,然后再根据递归的思想,什么时候调什么样的 *** ,自然就能很容易想明白了

二、怎么由先序和中序来找二叉树

1、遍历顺序中,先序是中左右,中序是左中右,所以 *** 就是通过先序找到根节点(根节点必然存在,且必为子树遍历的之一个节点),然后通过中序里面相应根节点的位置来区分左右子树,左边为其左子树,右边必为其右子树。

2、例如A是根,那么中序看,左子树是DFEGB,右子树是CIKJH,之后就利用递归的思路,单拿出左子树来分析;DFEGB在先序中B打头所以B是根节点,那么从中序可知,这个树只有左子树DFEG;D为根,只有右子树FEG;E为根,左叶子是F,右叶子是G。

3、再看CIKJH,由先序知C为根,由中序知只有右子树IKJH,再观察先序H为根,中序则只有左子树IKJ,这个树的根为I,只有右子树KJ,J为根,K为它的左叶子,全部分析完毕。

三、c语言编程实现二叉树的三种遍历

1、二叉树有三种遍历方式,分别为先序遍历、中序遍历、后序遍历。

2、二叉树是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树。二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树。

四、知道中序和后序遍历,画二叉树和写出前序遍历

知道中序和后序遍历,以中序遍历是:HDMIBJNEAFKCG。后续遍历是HMIDNJEBKFGCA为例,画二叉树和写出前序遍历的 *** 和步骤如下

1、从后序遍历知道,最后一个必然是根节点,因此A是根。再结合中序遍历可知HDMIBJNE是A的左子树部分,FKCG是右子树部分;

2、取A的右子树部分来看先,右子树部分的中序遍历:FKCE,后序遍历:KFGC。接着从后序遍历中看A的右子树部分KFGC,所以C是根,又从中序遍历知,FK是C的左子树部分,G是C右子树;

3、使用同样的 *** ,C的左子树部分,中序:FK,后序:KF。可以得出F是根,那么K只能是F的右子树了。此时如图所示,A的右子树部分都出来了;

4、再看,A的左子树部分HDMIBJE,中序:HDMIBJNE,后序:HMIDNJEB。后序遍历可知,B是根结点,那么再结合中序遍历可知道HDMI是B的左子树部分,JNE是B的右子树部分;

5、紧接着就是看B的左子树部分HDMI,中序:HDMI,后序:HMID,可知D是根,H是D的左子树,MI是D的右子树部分;

6、看到D的右子树部分,中序后序都是MI,根据后序中序的特性可知道,根只能是I,M是I的左子树;

7、再接着看看B的右子树部分JNE,中序:JNE,后序:NJE,后序看出E是根,中序看出E无右子树,只有JN是E的左子树部分;

8、最后看JN的中序:JN,后序:NJ,根据后序特性看出,J是根,中序看出N是J的右子树,那么整体的二叉树就出来了。

网友点评

博博常识网

博博常识网

www.kissing2lips.com

日常生活里,经常会碰到一些五花八门的小困难。不过好久好在有困难就有方法,如果你足够的细心,你会发现这些小困难都有着对应的小方法。

Powered By Z-BlogPHP Theme By . 鲁ICP备2021032584号-5