数据结构与算法之树的表示

开发工具与关键技术:数据结构与算法
作者:超级小贱贱
撰写时间:2020年5月28日

本次文献内容将为大家带来树的表示。先来说说什么是树,打个比方,爷爷在最顶头,爷爷的下面有三个儿子,分别是大伯、二伯和叔叔,再往下呢每个父亲下面又有两个儿子,把他们之间的关系用一根线连起来的话,就叫树形图。
树形结构的数据元素之间呈现分支、分层的特点。树形结构在客观世界中广泛存在,就如刚刚我所说的家族的关系、各种社会组织结构都可以用树形象的表示。而在计算机领域中呢也有,比如说操作系统中的目录树、数据库中信息的组织形式也是用的树形结构。
日常生活中,经常遇到具有层次关系的例子。比如一家企业,最顶层的就是董事长(老板),接着就是经理,然后就是组长,最后是员工,这是最简单的树形表示,都是一个典型的层次关系。
树(Tree)是由n(n≥0)个结点构成的有限集合T,当n=0时T称为空树,否则在任意一非空树T中有以下特点:
1、 有且仅有一个特定的结点,它没有前驱结点,我们称其为根(Root)结点;
2、 剩下的结点可分为m(m≥0)个互不相交的子集T1,T2,…,Tm,其中每个子集本身又是一棵树,并称其为根的子树。
注意:树的定义具有递归性,即理解为“树中还有树”,树的递归定义揭示出了树固有的特性。下面是树的形状图,左边呢是只含有一个跟节点的树,右边呢是含有多个结点的树。
在这里插入图片描述
注意了,由于子树的互不相交性,树中每个结点只属于一棵树(子树),且树中的每一个结点都是该树中某一棵子树的根。
接着在说说几种树的表示方法。在不同的应用场合,可以用不同的方法来表示树,常用的方法有以下几种:
1、 直观(树形、倒置树)表示法。这种表示方法非常形象,树的形状就像一棵倒立的树,如上图所示。
2、 嵌套集合(文氏图)表示法。该表示方法用集合表示结点之间的层次关系,对于其中任意两个集合,或者不相交,或者一个集合包含另一个集合,如下图(a)所示。
3、 凹入表(缩进)表示法。该表示方法类似于书的目录,用结点逐层缩进的方法表示树中各个结点之间的层次关系,如下图(b)所示。
4、 广义表(嵌套括号)表示法。该表示方法用括号的嵌套表示结点之间的层次关系,主要用于树的理论描述,如下图(c)所示。
在这里插入图片描述
下面在介绍介个树结构中的常用术语
1、 结点。结点表示一个数据元素和若干指向其子树的分支。如上上图(b)所示的树中,A到L都是树中的结点。
2、 结点的度。结点的度是指一个结点拥有的子树个数称为该结点的度。如上上图(b)所示的树中,A的度为3,C的度为1,F的度为0。
3、 树的度。树的度是指树中结点的最大度数。如上上图(b)所示,树的度为3。
4、 叶子。度为零的结点称为叶子。如上上图(b)所示,E、F、H、I、J、K、L都是树的叶子结点。
5、 分支节点。度不为零的结点,一棵树里面除了叶子结点以外,剩下的都是分支结点。
6、 孩子和双亲。结点的子树根称为该结点的孩子,相应的,该结点称为孩子的双亲。如上上图(b)所示,A结点是B、C、D结点的双亲,而B、C、D结点是A结点的孩子。
7、 兄弟。同一个双亲的孩子之间互相称为兄弟,如上上图(b)所示,H、I、J互为兄弟。
8、 祖先和孙子。结点的祖先是指从根到该结点所经分支上的所有结点。相应的,以某一节点为根的子树中的任一结点称为该结点的子孙。如上上图(b)所示,A是所有结点的祖先,A、C结点是G、K、L的祖先,K、L结点是A、C、G的子孙
9、 树的深度。树中结点的最大层次称为树的深度。如上上图(b)所示树的深度为4。
10、 结点的层次。结点的层次从根开始定义,根结点的层次为1,其孩子的结点层次为2,以此类推,任意结点的层次为双亲结点层次+1。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值