二叉树是一种最简单的树形结构,特点是树中每个结点至多关联到两个后继结点,一个结点的关联结点数可以为0、1或2;另一个特点是后继结点明确的分左右:左关联结点或右关联结点。
基本概念
二叉树是结点的有穷集合,或者为空集,或者为只有一个根结点,其余结点分属两棵不相交的二叉树,左子树和右子树。
二叉树的根结点称为该子树根结点的父结点,子树的根结点称为二叉树根节点的子结点;父结点和子结点的概念是相对的。
从父结点到子结点的连线称为父结点到子结点的边,这种边有方向,可以定义其传递关系。相同父结点的两个子节点互为兄弟结点。两棵子树都为空的结点称为树叶,其余结点称为分支结点。
一个结点的子结点个数称为该结点的度数,树叶节点的度数为0,分支节点的度数为1或2。
路径、结点的层和树的高度
从一个祖先结点到其任何子孙结点都存在一系列边,称为路径,路径中边的条数称为路径的长度。
二叉树是一种层次结构,树根为最高层,为0,对于位于k层的结点,其子结点是k+1层的元素。二叉树的高度为树种结点的最大层数。
二叉树的性质
- 在非空二叉树第 i i 层至多有 个结点。
- 高度为 h h 的二叉树至多有 个结点。
- 对于任何非空二叉树,如果叶结点个数为 n0 n 0 ,度数为2的结点个数为 n2 n 2 ,那么 n0=n2+1 n 0 = n 2 + 1 。
满二叉树
如果二叉树所有的分支节点的度数都是2,则称它为一棵满二叉树。
- 满二叉树的叶结点比分支节点多一个。
扩充二叉树
对于二叉树 T T 加入足够多的新叶节点,使T的原有结点都变成度数为2的分支节点,得到的二叉树为