除了一对一的线性结构,现实世界中其实还有许多一对多的情况,树就是一种一对多的数据结构。
树是n(n>=0)个结点的有限集。n=0时称为空树,在任意一颗非空树中:
树的结点包含一个数据元素及若干指向其子树的分支,结点拥有的子树数称为结点的度。度为0的结点称为叶子结点或是终端结点。
度不为零的结点称为内部结点,树的度是树内各节点的度的最大值。
结点的子树的根称为该结点的孩子,相应的该结点称为孩子的双亲。同一个双亲的孩子之间互称为兄弟。
从根到该结点所经分支上的所有结点都是为该结点的祖先。同样的,以某一结点为根的子树中的任一结点都称为该结点的子孙。
结点的层次从根开始定义起,根为第一层,根的孩子为第二层。树中结点的最大层次称为树的深度或高度。
如果将树中结点的各子树看成是从左到右有次序的,不能互换的,则称该树为有序树,否则称为无序树。
森林是m(m>0)棵互不相交的树的集合。
原文:https://www.cnblogs.com/cd-along/p/14833539.html