树的基本知识
之前我们讲述的线性表、栈和队列都是一对一的结构,但是实际中的实例往往没有那么简单,比如存在很多一对多,多对多的结构。我们现在讲的树就是一种一对多的结构。后面我们要讲的图是一种多对多的结构。
树是n(n>=0)个结点组成的有限集合T。当n=0时称为空树,在任意一颗非空树中,有且只有一个根节点。另外,当数的结点大于1时,子树的个数是没有限制的,但它们互相是一定不会相交的。
树的相关术语:
1、结点的子树的根称为该结点的孩子;相应该结点称为孩子的双亲,同一双亲的孩子之间称为兄弟,双亲在同一层的结点互为堂兄弟。
2、结点的层次从根开始为第一层,依次往下数,第二层...
3、树中结点的最大层次称为树的深度或者高度。
4、如果将树中结点的各子树看成从左到右是有次序的,不能互换的,则称该树为有序树,否则称为无序树。
5、森林是m棵互不相交的树的集合,对树中每个结点而言,其子树的集合即为森林。(零棵或者有限棵不相交的树的集合称为森林,任何一棵树删除根节点就变成森林)