数据结构与算法学习记录(五)树结构

什么是树结构

树结构是一种描述非线性层次关系的数据结构,其中重要的是树的概念。树是n个数据结点的集合,在该集合中包含一个根节点,根节点之下分布着一些互不交叉的子集合,这些子集合是根节点的子树。树结构的基本特征如下
1、在一个树结构中,有且仅有一个结点没有直接前驱,这个结点就是树的根结点。
2、除根结点外,其余每个结点有且仅有一个直接前驱。
3、每个结点可以有任意多个直接后继。

另外,一个树结构也可以是空,此时空树中没有数据结点,也就是一个空集合。如果树结构中仅包含一个结点,那么这也是一个树,树根便是该结点自身。

从树的定义可以看出,树具有层次结构的性质。而从数学的角度来看,树具有递归的特性。在树中的每个结点及其之后的所有结点构成一个子树,这个子树也包括根结点。

树的基本概念

1、父结点和子结点:每个结点子树的根称为该结点的子结点,相应的,该结点称为其子结点的父结点。
2、兄弟结点:具有同一父结点的结点称为兄弟结点。
3、结点的度:一个结点所包含子树的数量。
4、树的度:是指该树所有结点中最大的度。
5、叶结点:树中度为零的结点称为叶结点或者终端结点。
6、分支结点:树中度不为零的结点称为分支结点或非终端结点。
7、结点的层数:结点的层数从树根开始计算,根结点为第一层,依次向下为第2、3……n层(树是一种层次结构,每个结点都处在一定的层次上。)
8、树的深度:树中结点的最大层数称为树的深度。
9、有序树:若树中各结点的子树(兄弟结点)是按一定次序从左向右排列的,称为有序树。
10、无序树:若树中各结点的子树(兄弟结点)未按一定次序排列称为无序树。
11、森林:n(n>0)棵互不相交的树的集合。

在这里插入图片描述
图中,结点A为根结点。结点A有三个子树,因此,结点A的度为3.同理,结点E有两个子树,结点E的度为2.所有结点中,结点A的度为3最大,因此整个树的度为3.结点E是结点K和结点L的父结点,结点K和结点L是结点E的子结点,结点K和结点L为兄弟结点。
在树结构中,结点G、结点H、结点K、结点J、结点N、结点O、结点P和结点Q都是叶结点。其余的都是分支结点,整个树的深度为4.除去根结点A,留下的子树就构成了一个森林。

由于树结构不是一种线性结构,很难用数学式子来表示,这就需要采用全新的方式来表示树。一般来说,常采用层析括号法。层次括号法的基本规则如下:
1、根结点放入一对圆括号中;
2、根结点的子树由左至右的顺序放入括号中;
3、对子树做上述相同的处理。
这样,同层子树与它的根结点用圆括号括起来,同层子树之间用逗号隔开,最后用闭括号括起来。按照这种方式上图可表示为(A(B(E)),(C(F(J))),(D(H),(I(M,N))))

发布了84 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/GaoXiR/article/details/105693170