基础知识
二叉树: 一种特殊的普通树,每个节点刚好有两棵子树(包括为空的)的普通树。
树梢节点: 左右子树至少有一个节点为空的子树。
最小树梢节点和最小树梢高度: 离根节点最近的树梢节点为最小树梢节点,最小树梢节点到根节点的距离为最小树梢高度。
最大树梢节点和最大树梢高度: 离根节点最远的树梢节点为最大树梢节点,最大树梢节点到根节点的距离为最大树梢高度。
二叉树的高度: 最大树梢高度就是二叉树的高度。
定理
定理 1: 一棵二叉树为完全二叉树的充分必要条件是,任何树梢节点到根的距离都相等。
定理 2: 假设二叉树的最小树梢高度为 p,那么二叉树的节点个数大于等于 2^p - 1。
排序二叉树(搜索二叉树):
如果将二叉树的节点按照一定顺序排放,二叉树就变成了一棵有序二叉树或者叫搜索二叉树。
定义: 排序二叉树中任意节点的左节点小于它,右节点大于它。
基本操作
插入主要是要找到新节点的插入位置,如果插入的值比当前节点的小则向当前节点的左子树找,否则向右子树找,直到找到树的末端。
遍历
二叉树也是一种普通树,它也可以进行深度优先或广度优先遍历。
因为它有排序的性质,它还可以进行顺序遍历。基本的想法是先找到树中最左侧的叶子节点,打印出来,在从最左侧的叶子节点向上找他的父节点,然后是右侧节点。