BFS,DFS,以及图(Graph),树(Tree)的思考(2)

图论中的树

 总目录传送门:

BFS,DFS,以及图(Graph),树(Tree)的思考_PigeonEssence的博客-CSDN博客最近刷leetcode发现了很多题有使用到树,图,dfs和bfs,回想当时在离散数学,图论,还有数据结构的课上都有讨论过这方面的问题,于是就想尽自己的力去总结一份文档分享出来,也方便自己需要的时候查阅。个人理解可能并不准确,如有问题请联系修改。 这里做个目录吧: 1.图论中图的基础定义: BFS,DFS,以及图(Graph),树(Tree)的思考(1)_PigeonEssence的博客-CSDN博客我们在算法题以及很多算法理论中,经常会讨论到DFS和BFS算...https://blog.csdn.net/m0_56289903/article/details/121270356?spm=1001.2014.3001.5502

目录

图论中的树

树(Tree)

节点(node):

树枝(branch):

根(root):

叶子(leaf):

度(degree):

层/深度/高度(level/depth/height):

双亲/孩子/兄弟(parent/child/sibling)

祖先/后代(ancestor/descendant)

森林(forest)


树(Tree)

        由一个或多个(n>=0)节点组成的有限集合T,有且仅有一个节点称为根(root),当n>1时,其余的节点为m(m>=0)个互不相交的有限集合T1,T2,...,Tm。每个集合本身又是棵树,称其为根的子树。注意:空树也是树,树具有递归性(树中有树)。

        在图论中,树的形态和计算机中树的形态是不同的,是通过根节点向上分支,更像是一个“树”而不是“树根”,从根(root)开始开枝(branch)散叶(leaf):

        之前我们讨论过图,对于图有了一定的认识以后,对于树的认识就会相对简单了:

        我们可以说,树就是一种特别的图,用图来定义树就是:任意两点都联通,并且不存在回路的的图,我们把他称为树。由此可见,树的形态是多样的。

这样的也是树。  

节点(node):

就是图(graph)的顶点(vertex),如上图中的顶点:0,1,2,3,4,5,6。

树枝(branch):

就是图(graph)的边(edge)。如上图中的0->1, 0->2, 1->3,, 2->4, 3->5, 3->6。

根(root):

一颗树可以想象成从某一个顶点开始进行分枝,那么这个顶点就是“根”。一颗树的每一个节点都可以作为根。如图中可以将节点0作为根。

叶子(leaf):

在一颗树上选定根后,如节点0作为根。由根开始不断分枝,途中所有无法再分枝的节点成为叶。如上图中,根为点0,则节点4,5,6是叶。

度(degree):

一个节点拥有的子树数称为节点的度(degree)。叶(leaf)也可以用度来定义:度为0的节点称为叶(leaf)。如上图中,根节点0的度就是2,节点4的度为0,也就是叶。

层/深度/高度(level/depth/height):

高度”这个概念,是从最leaf开始计数,并且计数的起点是0。

深度”这个概念,从根结点开始度量,并且计数起点也是0。(反过来看)

层数”跟深度的计算类似,不过,计数起点是1,也就是说根节点的位于第1层。

在一颗树中选定根(root)后,按照每个点离根的距离,可以将树中的点分为多个层级。

而一个树的最大层级数称为树的深度(depth)或高度(height),

如上图的高度为4:节点->节点5或者节点->6

从节点0开始,是level 0

        如节点1,2位于层1(level 1),下方的叶子3,4位于层2(level 1),节点2的高度是1,节点1的高度是2,节点4本身是叶,其高度是0,根节点0的高度是3。

双亲/孩子/兄弟(parent/child/sibling)

        在一颗树中选定根(root)后,相邻的两点,靠近根的是双亲(parent),远一点的是孩子(child)。

        如上图中,选择节点3为root,parent就是节点1,child就是节点5,6,sibling就是节点4

祖先/后代(ancestor/descendant)

        在一颗树中选定根(root)后,一个点的双亲、双亲的双亲、……都是此点的祖先(ancestor),根节点是所有子节点的祖先,注意双亲(parent)也属于祖先。因此,祖先是一个集合概念。同理,一个点的孩子、孩子的孩子、……都是此点的后代(descendant),后代也是一个集合概念。

        如上图中,选择节点3为root,parent就是节点1,ancestor就是{0,1,2}的集合。descendant就是{5,6}的集合。

森林(forest)

        很多颗树的集合称为森林。森林中,树与树之间互不相交。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PigeonEssence

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值