【C# 数据结构与算法】树
作者:互联网
树的定义
树可以用递归的形式来定义:树T是由n(n>=0)个结点组成的有限集合,他或者是颗空树,或者包含一个根结点和零或若干棵互不相干的子树。
可以使用广义表(纯表)的形式树结构,如下树结构用广义表表示:A(B(E,F),C(G),D(H,I,J))
表示树结构的广义表没有共享和递归成分,是一种纯表。广义表中的原子对应于树的叶节点,树的非叶子结点则用子表结构表示。
空树:节点树为0的树,即n=0时,称为空树。
非空树:一颗非空树T具有以下特点
(1)有且仅有一个根节点
(2)没有后继的节点称为“叶子节点”,有后继的节点称为“分子节点”.
(3)当树的结点数n>1时,根结点之外的其他结点可以分为m(m>=1)个互不相交的集合T1,T2,T3.。。。Tm,其中每个集合Ti(1<=i<=m)具有与树T相同的树结构,称为子树。每颗子树的根结点有且仅有一个直接的前驱结点。
这是图
树的分类:
树结构可以分为有序和无序树两种类型,有序树种最常用的是二叉树。
树结构的应用场景:
操作系统的文件系统,根目录是文件树的根节点,子目录是树中的分子节点,文件是树结构的叶子节点。
除了根节点外,任何节点有且仅有一个前驱,有多个前驱的节点的叫图。叶子节点没用后继节点。
森林
若干颗互不相交的树的集合称为森林。给森林加上一个根节点就变成一颗树。将树的根结点删除就变成由子树组成的森林。
C# 节点的深度是从0开始计算的。
标签:结点,树结构,C#,后继,空树,算法,广义,数据结构,节点 来源: https://www.cnblogs.com/cdaniu/p/16283172.html