1. 二叉树
- 普通定义:在计算机科学中,二叉树是每个结点最多有两个子树(,节点没有子树,节点有一个子树,节点有两个子树)的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。
- 递归定义:二叉树 是定义在有限节点集上的结构,它或者不包含任何节点,或者包含三个不相交的节点的集合:
- 一个根节点
- 一棵称为左子树的二叉树(递归定义,新的二叉子树,高度较之-1)
- 这里的左子树,既然是一种二叉树,则它或者不包含任何节点,或者包含三个不相交的节点的集合
- 一个称为右子树的二叉树;
2. 完美二叉树(perfect binary tree,满二叉树)
- 定义1:所有叶子结点高度相同的二叉树。(所有叶子结点高度相同,也即,所有叶子节点在同一层级,在最高一层)
- 所有内部节点(非叶子节点),度为2。即所有内部节点均包含,左右两个子树;
- 定义2:高度为 且有 个节点的二叉树,称为完美二叉树;
3. 完全二叉树(complete binary tree)
- 定义1:完全二叉树从根结点到倒数第二层满足完美二叉树,最后一层可以不完全填充,其叶子结点都靠左对齐。
- 所有内部节点度也为 2;
- 定义2: