相比数组和链表,二叉树是一种比较独特的数据结构,对于二叉树的一些概念和规律的内容,这里就不多描述和证明了,本篇主要来看下二叉树的构造过程以及几种遍历过程。
认识二叉树的遍历
对于二叉树的先序、中序、后序遍历,还记得各从哪个节点开始的吗,这里有一个简单得方法,二叉树是由根节点N,左孩子节点L,右孩子节点R组成,那么这三个节点一共有6种排序方式,而实际上只有3种,另外3种只是顺序倒过来而已。这三种排序方式是:NLR、LNR、LRN,分别对应先根、中根、后根遍历,先根即N在最前,中跟即N在中间,后根即N在最后。来看一张图:
创建二叉树
现在假设要将上图中二叉树创建出来,思考一下,该如何操作?
1.定义树节点对象的属性和方法
2.创建每个节点对象
3.建立节点之间的关系
好,按照步骤来,首先二叉树的节点会有哪些属性呢?角标、数据、左孩子、右孩子,我们先将节点定义出来:
有了节点的定义,我们就可以将上图中的节点创建出来,并建立它们之间的关系:
获取二叉树的高度和大小
根据二叉树的特点,可以发现,一个节点有一个左孩子或者右孩子,高度就+1,所以二叉树的高度就是取左孩子与右孩子的最大值,然后加根节点的1。获取大小就是获取二叉树所有左孩子与右孩子的节点之和了,最后也要加根节点的1。
测试看下结果对不对:
二叉树的遍历
本质上还是递归,只是跟的位置不同而已。
1.先序遍历上图二叉树
2.中序遍历
3.后序遍历
三种遍历的打印结果分别是:
ABDECFG
DBEAFCG
DEBFGCA
与最开始的图片上面一致。
先分享到这里,小僧一人也断断续续的在学习和理解,二叉树相关的知识以及题目很多,大家对二叉树有什么不理解的,可以给小僧留言,生活愉快~
赞赏