什么是树
书树是一种简单的非线性结构,是不包含回路的连通无向图
树的特性
- 一棵树中任意两个结点有且仅有唯一的一条路径连通
- 一棵树如果有n个结点,那它一定恰好有n-1条边
- 在一棵树中加一条边将会构成一个回路
- 树中有且仅有一个没有前驱的结点称为根结点
二叉树
二叉树通常采用链式存储结构,存储结点由数据域和指针域(指针域:左指针域和右指针域)组成,二叉树的链式存储结构也称为二叉链表,对满二叉树和完全二叉树可按层次进行顺序存储
二叉树的特点
- 每个结点最多有两颗子树
- 左子树和右子树是有顺序的,次序不能颠倒
- 即使某结点只有一个子树,也要区分左右子树
- 二叉树可为空,空的二叉树没有结点,非空二叉树有且仅有一个根节点
- 二叉树中有两种特殊的二叉树:满二叉树、完全二叉树
二叉树相关的名词解释
- 根节点:没有父结点的结点
- 叶结点:没有子结点的结点
- 结点的度:结点拥有的子树的数目
- 树的度:树中结点的最大的度
- 满二叉树:二叉树中每个内部结点都有存在左子树和右子树(或者说满二叉树所有的叶结点都有同样的深度)
- 完全二叉树:除最后一层外,每一层上的节点数均达到最大值,在最后一层上只缺少右边的若干结点
二叉树的基本性质
- 在二叉树的第k层上至多有2k-1个结点(k>=1)
- 在深度为m的二叉树至多有2m-1个结点
- 对任意一颗二叉树,度为0的结点(即叶子结点)总是比度为2的结点多一个
- 具有n个结点的完全二叉树的深度至少为[log2n]+1,其中[log2n]表示log2n的整数部分