1 树的定义
由一个或多个(n≥0)节点组成的有限集合T,且仅有一个节点称为根(root),当n> 1时,其余节点分为m(m≥0)个互不相交的有限集合T1,T2,…,Tm。每个集合本身又是一棵树,被称作这个根的子树。树的定义具有递归性,即树中还有树。
2 与树有关的术语
根:即根节点(没有前驱)
叶子:即终端节点(没有后继)
森林:指m棵互不相交的树的集合(例如没有根节点的子树)
有序树:节点各子树从左至右有序,不能互换(左为第一)
无序树:节点各子树可互换位置
双亲:即上层的那个节点(直接前驱parent)
孩子:即下层结点的子树(直接后继child)
兄弟:同一双亲下的同层节点(孩子之间互称兄弟)sibling
堂兄弟:双亲位于同一层次的节点(非同一双亲)cousin
祖先:从根到该结点所经分支的所有节点
子孙:该节点下层子树中的任一节点
结点:树的数据元素
节点的度:节点挂接的子树数(有几个直接后继就是几度)
节点的层次:从跟到该节点的层数(根节点算第一层)
终端节点:度为0的节点,叶子节点
分支节点:除树根以外的节点(内部节点)
树的度:所有节点度中的最大值(Max{各节点的度})
树的深度:所有节点中最大的层数(Max{各节点的层次})
3 树的表示方法
(1)图形表示法
(2)嵌套集合表示法
广义表示法(集合表示法):(A(B(E(K,L),F),C(G),D(H(M),I,J)))
(5)左孩子右兄弟表示法
4 树的逻辑结构
(特点):一对多(1:n),有多个直接后继(如家谱树、目录树等等),但只有一个根节点,且子树之间互不相交。
5 树的存储结构树是非线性结构,仍然有顺序存储和链式存储等方式。
树的顺序存储方案:从上至下、从左至右将树的节点依次存入内存。
重大缺陷:复原困难(不能唯一复原就没有实用价值)
树的链式存储方案:一个前驱指针,n个后继指针。