第五章 树与二叉树
树的基本概念
数的定义和基本术语
- 树:从树根生发,逐级分支。
- 空树:结点数为0的树。
- 非空树的特性:
- 有且仅有一个根结点。
- 没有后继的结点称为“叶子结点”(或终端结点)。
- 有后继的结点称为“分支结点”(或非终端结点)。
- 除了根结点外,任何一个结点都有且仅有一个前驱。
- 每个结点可以有一个或多个后驱。
- 树是 n (n >= 0)个结点的有限集合,n = 0 时,称为空树,这是一种特殊情况。在任意一颗非空树中应满足:
- 有且仅有一个特定的称为根的结点。
- 当 n > 1 时,其余结点可分为 m (m > 0)个互不相交的有限集合 T1,T2,…Tm,其中每个集合本身又是一颗树,并且称为根结点的子树。
- 树是递归定义的数据结构。
- 结点之间的关系描述:
- 祖先结点
- 子孙结点
- 双亲结点(父结点)
- 孩子结点
- 兄弟结点
- 堂兄弟结点
- 两个结点之间的路径:只能从上往下
- 路径长度:经过几条边
- 结点和树的属性描述:
- 结点的层次(深度)——从上往下数
- 结点的高度——从下往上数
- 树的高度(深度)——总共多少层
- 结点的度——有几个孩子(分支)
- 树的度——各结点的度的最大值
- 有序树:逻辑上看,树中结点的各子树从左至右是有次序的,不能互换。
- 有序树:逻辑上看,树中结点的各子树从左至右是无次序的,不能互换。
- 森林:森林是 m(M >= 0)棵互不相交的树的集合。