第32课 -二叉树的定义
1. 通用树结构的回顾
通用树结构是采用双亲孩子表示法模型建立的,每个结点都有一个指向其双亲的指针;每个结点都有若干个指向其孩子的指针。
2. 另一种模型
孩子兄弟表示法模型:每个结点都有一个指向其第一个孩子的指针;每个结点都有一个指向其第一个右兄弟的指针。
3. 孩子兄弟表示法
每个结点包含一个数据指针和两个结点指针:数据指针-指向保存于树中的数据;孩子结点指针-指向第一个孩子;兄弟结点指针-指向第一个右兄弟。
4. 孩子兄弟表示法的特点
能够表示任意的树形结构。
每个结点中有且仅有三个指针域:数据指针,孩子结点指针,兄弟结点指针。
每个节点的结构简单:只有孩子结点指针和兄弟结点指针构成了“树杈”。
5. 二叉树的定义
二叉树是由n(n>=0)个结点组成的有限个集合,该集合或者为空,或者是由一个根节点加上两颗分别称为左子树和右子树的互不交叉的二叉树组成。
6. 特殊的二叉树
定义1:满二叉树(Full Binary Tree)
如果二叉树中所有分支结点的度数都为2,且叶子结点都在同一层次上,则称这类二叉树为满二叉树。
定义2:完全二叉树(Complete Binary Tree)
如果一棵具有n个结点的高度为k的二叉树,它的每一个结点都与高度为k的满二叉树中编号为1-n的结点一一对应对应,则称这棵二叉树为完全二叉树。(从上到下从左到右编号)
完全二叉树的叶结点仅出现在最下面两层:最下层的叶结点一定出现在左边,倒数第二层的叶结点一定出现在右边。
完全二叉树中度为111的结点只有左孩子。
同样结点数的二叉树,完全二叉树的高度最小。
小结:
通用树结构还可以根据孩子兄弟表示法实现。
孩子兄弟表示法的本质是将通用树转化为二叉树。
二叉树是最多只有两个孩子的树。