常用数据结构:树的几种遍历方式整理

一、定义:

1,树型结构是一类重要的非线性数据结构,其中以树和二叉树最为常用,直观看来,树是以分支关系定义的层次结构。

2,树(Tree) 是 n (n >= 0)个 结点的有限集。在任意一棵非空树中。

(1)有且仅有一个特定的称为根(root)的结点;

(2)当(n > 1)的时候,其余结点可分为m个互不相交的有限集,而且每个集合本身又是一棵树,称为根的子树。

3,二叉树(Binary Tree)是特殊的树形结构,特点是每个结点至多只有两棵子树,而且子树存在左右之分。

4,树的深度是指树中结点的最大层次。

5,满二叉树是指深度为k的二叉树具有2k - 1(2的k次方)个结点,完全二叉树则是指二叉树除了第 k 层,其余层次都满足满二叉树的定义,如下图所示:(图为转载,如侵删)

 

 

二、树的几种遍历方式

二叉树的遍历方式主要有先序遍历、中序遍历、后序遍历以及层次遍历

1、先序遍历:

(1)访问根结点;(2)先序遍历左子树;(3)先序遍历右子树。

Tips:①先访问根结点A,

②左子树(B)先序遍历,得到B-D-E,右子树(C)先序遍历,得到C-F-H

③再对B的右子树(E)先序遍历,得到 E-G-I

④合并全部得到 A-B-D-E-G-I-C-F-H

2、中序遍历:

(1)中序遍历左子树;(2)访问根结点;(3)中序遍历右子树。

Tips:①先中序遍历左子树(B),得到D-B-E,E存在子树,中序遍历(E),得到G-E-I,因此得到D-B-G-E-I

②访问根结点得到 A,总的为D-B-G-E-I-A

③中序遍历右子树(C)得到F-C-H

④合并全部得到D-B-G-E-I-A-F-C-H

3、后序遍历:

(1)后序遍历左子树;(2)后序遍历右子树;(3)访问根结点。

Tips:①先后序遍历左子树(B) ,得到D-E-B,E存在子树,后序遍历(E),得到G-I-E,因此得到D-G-I-E-B

②后序遍历右子树(C) 得到F-H-C

③访问根结点A

④合并全部得到D-G-I-E-B-F-H-C-A

4、层次遍历:

(1)从根结点开始访问;(2)逐层进行访问,在同一层中,按从左到右的方式进行访问。

Tips:先访问A,再逐层访问,得到A-B-C-D-E-F-H-G-I

 

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/noob_Cliam/article/details/82800353