树的定义
树(Tree)是n(n≥0)个结点的有限集。在任意一颗非空树中:(1)有且仅有一个特定的称为根(Root)的结点;(2)当n>1时,其余的结点可分为m(m>0)个互不相交的有限集T1,T2,…,Tm,其中每一个集合又是一棵树,并且称为根的子树(SubTree)。
树的结构定义是一个递归定义,即在树的定义中又用到了树的概念,它道出了树的固有特性。
树的结点: 包含一个数据元素及若干个指向其他子树的分支。
结点的度(Degree): 结点拥有的子树数。
叶子(Leaf)或终端结点: 度为0的结点。
分支结点(内部结点)或非终端结点: 度不为0的结点。
树的度: 树内各结点的度的最大值。
孩子(Child): 结点的子树的根。相应的,该节点称为孩子的双亲(Parent)。
兄弟(Sibling): 同一个双亲的孩子之间。
祖先: 从根节点到该节点所经分支上的所有结点。
子孙: 以某结点为根的子树中的任一结点。
层次(Level): 从根开始定义起,根为第一层,根的孩子为第二层。
堂兄弟: 双亲在同一层的结点。
深度:(Depth)或高度:树中结点的最大层次。
有序树: 将树中结点的各个子树看成从左至右是有序的(即不能互换),反之称为无序树
森林(Forest): m(m≥0)棵互不相交的树的集合。对树中每个结点而言,其子树的集合即为森林。
树的性质
- 性质1:树中的结点数等于所有结点的度数+1。
- 性质2:度为m的树中第i层上至多有mi-1个结点(i≥1)。
- 性质3:高度为h的m次树至多有(mh-1)/(m-1)个结点。
- 性质4:具有n个结点的m次树的最小高度为[logm(n(m-1)+1)],最大高度为n-(m-1)