树型结构是一类重要的非线性数据结构,树是以分支关系定义的层次结构。
树(Tree)
树是n(n>=0)个结点的有限集。
在任意一棵非空树中:
(1)有且仅有一个特定的根结点(Root)
(2)当n>1时,其余节点可分为m(m>0)个互不相交的有限集,其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)
一些相关的基本术语:
(1)度(Degree):结点拥有的子树数称为结点的度。例如上图中A的度为3,C的度为1,F的度为0
(2)叶子(Leaf)或终端结点:度为0的结点。上图中的叶子结点有K,L,F,G,M,I,J
(3)树的度:树内各节点的度的最大值。上图中树的度为3
(4)孩子(Child):结点的子树的根,相应的,该节点称为孩子的双亲(Parent)。
(5)兄弟(Sibling):同一个双亲的孩子互称为兄弟。上图中的H,I,J互为兄弟。
(6)祖先:从根结点到该结点所经分支上的所有结点。例如M的祖先为A,D,H。反之,以某结点为根的子树中的任一结点都称为该结点的子孙。
(7)层次(Level):从根开始定义,根为第一层,根的孩子为第二层。
(8)堂兄弟:双亲在同一层的结点。例如上图中的F,G
(9)树的深度(Depth)或高度:树中结点的最大层次称为树的深度。上图中树的深度为4
(10)森林(Forest):是m(m>=0)棵互不相交的树的集合。
二叉树(Binary Tree)
二叉树是另一种树型结构,它的特点是每个节点至多只有两棵子树(即二叉树中不存在度大于2的结点)。
<