撰写时间:2019年8月07日
二叉树的定义:
二叉树是每个结点最多有两个子树的树结构。由一个根结点以及两棵互不相交的、分别称为
左子树和右子树的二叉树组成。
二叉树有五种基本形态
1、空二叉树
2、只有一个根节点的二叉树
3、只有左子树
4、只有右子树
5、完全二叉树
二叉树的定义其实是一个递归定义的过程
二叉树遍历的基本方法:
一颗二叉树有三部分组成:根节点,左子树,右子树。D,L,R分别代表“访问根结点”、“遍历根结点的左子树”和“遍历根结点的右子树”
遍历的算法为:
前序遍历(DLR)
若二叉树为空则算法结束;否则:
(1)访问根结点;
(2)前序遍历根结点的左子树;
(3)前序遍历根结点的右子树。
中序遍历(LDR)
若二叉树为空则算法结束;否则:
(1)中序遍历根结点的左子树;
(2)访问根结点;
(3)中序遍历根结点的右子树。
后序遍历(LRD)
若二叉树为空则算法结束;否则:
(1)后序遍历根结点的左子树;
(2)后序遍历根结点的右子树;
(3)访问根结点。
(图1)
前序遍历(DLR)
1245367
中序遍历(LDR)
4251367
后序遍历(LRD)
4526731
此外,二叉树还有层序遍历。层序遍历是:按二叉树的层序次序(即从根结点层至叶结点层),同一层中按先左子树再右子树的次序遍历二叉树。自上而下,自左至右逐层访问树的结点的过程就是层序遍历。
(图1)的层序遍历是:1234567