目录
- 基本概念
- 二叉树概念及性质
- 二叉树的存储结构:顺序存储结构,链式存储结构
- 二叉树的遍历:先序,中序,后序,层次
- 线索二叉树
- 树的表示:双亲表示法,孩子表示法,孩子兄弟表示法
- 森林转化为二叉树
- 哈夫曼树
- 回溯算法
基本概念
1、空树: 没有任何结点;
2、度: 结点的度:结点拥有子树的个数;树的度:树内各结点的度的最大值;
3、层次: 树根为第一层,依次往下增长;
4、有序树、无序树: 即结点的字数分不分左右先后;
5、森林: m(m>=0)个互不相交的树组成的集合 。
二叉树
1、概念: 满足(1)本身是有序树(即分左孩子和右孩子);(2)树中各节点的度不超过2的树(只能是0、1、2)。
2、满二叉树: 除叶子节点外的节点度均为2的二叉树。
3、完全二叉树: 最后一层节点依次从左到右排布,且将这层节点去掉后剩下的是满二叉树的树称作完全二叉树。
即,从满二叉树中最深一层从右往左去掉一些节点剩下的二叉树为完全二叉树。
二叉树的存储结构
1、顺序存储: 即用顺序表(数组)从上到下从左到右将二叉树的节点依次存储,这种方法只能存完全二叉树,对于非完全二叉树,则需要将其先转换成完全二叉树方可存储(不过这种方式较为浪费存储空间,因为存储了许多无用节点)。
2、链式存储: 即用链表存储树,此时则不会存在空间浪费的现象。
二叉树的遍历
1、先序:
(1)访问根节点;
(2)访问当前节点的左子树;
(3)若当前节点无左子树,则访问当前节点的右子树;
2、中序:
(1)访问当前节点的左子树;
(2)访问根节点;
(3)访问当前节点的右子树;
3、后序: 从根节点出发,依次遍历各节点的左右子树,直到当前节点左右子树遍历完成后,才访问该节点元素。
以上的“先、中、后”均指的是对于根节点相对于子节点的遍历顺序。