树:n个结点的有限集。n=0时称为空树。在任意一棵非空树中,仅有一个根结点;当n>1时,其余结点可分为m个互不相交的有限集,每个集合又是一个树结构,相当于D&C
树:一对多的数据结构.
结点的分类:
结点拥有子树数称为结点的度。
叶结点或终端结点:度为0。
非终端结点或分支结点:度不为0。
内部结点:除跟结点之外的分支结点。
树的度:树内各结点度的最大值。
结点间的关系:
结点的子树的根称为该结点的孩子,相应的,该结点称为孩子的双亲;
同一个双亲的孩子之间互称为兄弟;
以某结点为根的子树中的任一结点都称为该结点的子孙。
结点的层次从根开始定义起,根为第一层,孩子为第二层;
其双亲在同一层的结点互为堂兄弟;
树中结点的最大层次称为树的深度;
分左右为有序树,否者为无序树;
森林是m棵互不相交树的集合,对于树中每个结点而言,其子树的集合即为森林。
树结构最核心的特征:
根节点:无双亲,唯一;
叶结点:无孩子,可以多个;
中间结点:一个双亲多个孩子;
一,双亲表示法
类似于静态链表。其指针指向双亲结点!(找孩子很麻烦)
是否将结构扩展为有双亲域,长子域,右兄弟域,视情况而定。
因为,存储结构的设计是一个非常灵活的过程。一个存储结构设计的是否合理,取决于基于该存储结构的运算是否合适,时间复杂度好不好等。
复杂度的结构意味着更多的时间与空间的开销。
二,孩子表示法
由于树中每个结点可能有多棵子树,可以考虑多重链表,即每个结点有多各指针域,其中每个指针指向一棵子树的根结点,我们把这种方法叫做多重链表表示法。
由于孩子结点数目不同有两种解决方案:
方案一:指针域的个数等于树的度(有点浪费空间了,如果仅有一结点的度极大)。
方案二:
标签:结点,复习,树结构,孩子,链表,双亲,指针 From: https://www.cnblogs.com/abwork-space/p/17058440.html