目录
树形结构
在非线性结构中,至少有一个节点有不止一个前驱或后续
树形结构主要分两种:树(森林)和二叉树。
树的概念
树是n(n>=0)个节点的有限集T,如果n=0,则称T为空树,否则,树满足以下条件:
- 有且仅有一个特定的称为根( root)的结点,它仅有后继,没有前驱
- 除根以外的其他结点被划分为m( m≥0)个互不相交的有限集合T1 ,T2 ,…,Tm ,其中每一个集合又都是树,并且称为根的子树(subtree )
树的表示法
树的术语
- 双亲与子女(parent and child):结点的子树的根称为该结点的子女,反之,该结点称为子女结点的双亲(父母)
- 兄弟(sibling):同一双亲的子女之间互为兄弟
- 祖先与子孙(ancestor and descendant):若有一条由k到达kp 的路径,则称k是kp 的祖先,kp 是 k 的子孙。(或者说,结点的祖先是从根到此结点分支上的所有结点;从该结点到终端结点的路径上的所有结点称为该结点的子孙。)
- 边(edge):树形结构中,两个结点的有序对,称作连接这两个结点的一条边
- 结点的度数(degree):是结点所拥有的子树的棵数
- 树叶(leaf):度数为0的结点,又称为终端结点。(或者说,没有子树的结点。)
- 分支(branch)结点:非终端结点。(或者说,度数不为0的结点。)
- 结点的层数(level):根结点的层数为0,其他所有结点的层数等于它父母结点的层数加1。
- 树的高度(height):树中结点的最大层数。
- 树的度(degree of tree):树中结点的度数的最大值。
- 有序树与无序树(ordered tree and unordered tree):在树T中如果各棵子树T1 ,T2 ,…,Tm 的相对次序是重要