编程语言
首页 > 编程语言> > 【C# 数据结构与算法】树

【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