一、树的定义
树:n(n≥0)个结点的有限集合。
当n=0的时候称为空树
任意一棵非空树满足以下条件:
⑴ 有且仅有一个特定的称为根的结点;
⑵ 当n>1时,除根结点之外的其余结点被分成m(m>0)个互不相交的有限集合T1,T2,… ,Tm,其中每个集合又是一棵树,并称为这个根结点的子树。
易见树的定义采用了递归方法
二、树的基本术语
结点的度:结点所拥有的子树的个数
树的度:树中结点度的最大值
孩子、双亲: 树中某结点子树的根结点称为这个结点的孩子结点,这个结点称为它孩子结点的双亲结点;
兄弟: 具有同一个双亲的孩子结点互称为兄弟。
路径: 如果树的结点序列n1, n2, …, nk有如下关系:结点ni是ni+1的双亲(1<=i<k),则把n1, n2, …, nk称为一条由n1至nk的路径;路径上经过的边的个数称为路径长度。
结点所在层数: 根结点的层数为1;对其余任何结点,若某结点在第k层,则其孩子结点在第k+1层。
树的深度: 树中所有结点的最大层数,也称高度。
层序编号: 将树中结点按照从上层到下层、同层从左到右的次序依次给他们编以从1开始的连续自然数。
有序树、无序树: 如果一棵树中结点的各子树从左到右是有次序的,称这棵树为有序树;反之,称为无序树。
森林: m (m≥0)棵互不相交的树的集合。
同构: 对两棵树,若通过对结点适当地重命名,就可以使这两棵树完全相等(结点对应相等,结点对应关系也相等),则称这两棵树同构。