数据结构之二叉树入门篇

相比数组和链表,二叉树是一种比较独特的数据结构,对于二叉树的一些概念和规律的内容,这里就不多描述和证明了,本篇主要来看下二叉树的构造过程以及几种遍历过程。

认识二叉树的遍历

对于二叉树的先序、中序、后序遍历,还记得各从哪个节点开始的吗,这里有一个简单得方法,二叉树是由根节点N,左孩子节点L,右孩子节点R组成,那么这三个节点一共有6种排序方式,而实际上只有3种,另外3种只是顺序倒过来而已。这三种排序方式是:NLR、LNR、LRN,分别对应先根、中根、后根遍历,先根即N在最前,中跟即N在中间,后根即N在最后。来看一张图:

创建二叉树

现在假设要将上图中二叉树创建出来,思考一下,该如何操作?

1.定义树节点对象的属性和方法

2.创建每个节点对象

3.建立节点之间的关系

好,按照步骤来,首先二叉树的节点会有哪些属性呢?角标、数据、左孩子、右孩子,我们先将节点定义出来:

有了节点的定义,我们就可以将上图中的节点创建出来,并建立它们之间的关系:

获取二叉树的高度和大小

根据二叉树的特点,可以发现,一个节点有一个左孩子或者右孩子,高度就+1,所以二叉树的高度就是取左孩子与右孩子的最大值,然后加根节点的1。获取大小就是获取二叉树所有左孩子与右孩子的节点之和了,最后也要加根节点的1。

测试看下结果对不对:

二叉树的遍历

本质上还是递归,只是跟的位置不同而已。

1.先序遍历上图二叉树

2.中序遍历

3.后序遍历

三种遍历的打印结果分别是:

ABDECFG

DBEAFCG

DEBFGCA

与最开始的图片上面一致。

先分享到这里,小僧一人也断断续续的在学习和理解,二叉树相关的知识以及题目很多,大家对二叉树有什么不理解的,可以给小僧留言,生活愉快~

赞赏

长按







































治疗白癜风最好的专科医院
白癜风北京



转载请注明:http://www.92nongye.com/hxjs/204619342.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了