首页 > 其他分享 >关于树和图的各种序

关于树和图的各种序

时间:2023-11-28 17:34:30浏览次数:26  
标签:树和图 各种 后序 dfs 对应 访问 dfn 关于 节点

下面讲序的时候用的图

括号里是应用的场景, 不一定只能应用于相应的场景, 但是我个人觉得遇到比较多, 而且比较合理
下面的例子用这个树
image
然后用这个图
image

欧拉序(树)

dfs序指的就是dfs过程中访问到的节点的顺序
每个节点访问和离开的时候都会记录一下
所以每个节点会在dfs序上出现2次
欧拉序:
1 2 4 2 5 2 1 3 1 (号节点)
欧拉序长度可证明是2n-1

算法

  1. LCA(lowest Common Ancestors)
    两个节点的lca一定是他们第一次出现的位置中间节点中, 深度最小的点

dfs序(树)

只在进入的时候算一次
emmm, 说实在的, 这是我一直以来的概念, 很多博客把dfs序进入和离开各算一次, 我也不知道对不对
dfs序:
1号节点 2号节点 4号节点 5号节点 3号节点

dfn(树)

dfn 是 Depth-First Numbering
其实dfn也不称之为序
一般这个数组名字是为了求节点第一次访问的时间戳.
硬要说序也可以说序, 其实就是按dfs序访问的时候, 从1-n标记一下.
也可以理解为做了一个映射
这样一来, 一棵树就变成了一个连续的数组, 我们在上面做一些操作就很容易
timer从0开始, 每次++timer按dfs序标注即可
1号节点对应的dfn是1
2号节点对应的dfn是2
3号节点对应的dfn是5
4号节点对应的dfn是3
5号节点对应的dfn是4
可以注意到一个节点的子树都是连续的标号, dfn数组操作的时候就可以一次性操作一颗子树了

用处

检测回路, 连通性, 查询路径上的属性

逆后序(图) Reverse Postorder

一个序列 arr = []
指的是在DFS完成搜索一个节点的所有邻接节点后, 该节点被加入序列
换句话说, 根据的是一个节点完成搜索的时间点

所以可以得知, 一个节点肯定是晚于他的子节点被加入序列的

从节点1开始的话, 逆后序是1 2 3 6 5 4 (并不唯一, 因为跟邻接节点的dfs顺序也有关系)

用处

  1. 求强连通分量
    kosaraju和tarjan中都有使用
  2. 拓扑排序
    DAG(有向无环图)中, 逆后序提供了一种天然的拓扑排序
    此外, 逆后序还用于数据流分析(编译器优化), 递归依赖问题解决等

后序(图)

顾名思义, 后序就是逆后序没有压入栈, 进入的是队列
4 5 6 3 2 1

总结

一些用处讲的比较泛
本质上是我自己认知也不是很足

标签:树和图,各种,后序,dfs,对应,访问,dfn,关于,节点
From: https://www.cnblogs.com/ryougi/p/17862511.html

相关文章

  • 关于 FontAwesome 字体图标库的 content 属性
    下图这个例子里,\f0002被映射为一个放大镜图标:代码:.fa-search:before{content:"\f002";}在Web前端开发中,上图提到的代码是属于使用字体图标(iconfonts)的一种方式。在这个特定的例子中,.fa-search是一个CSS类,:before是一个伪元素选择器,用于在匹配的元素前插入内容。而co......
  • 关于CCD视觉对位系统+UVW对位平台计算公式算法举例
    UVW对位平台介绍:1、这是一种可以实现以平面上任意一点为中心,进行旋转运动的装置,并可沿着任意的方向平移。2、此平台和视觉CCD纠偏系统对接在一起,可以很快完成高精度的纠偏工作,重复定位精度一般可达±1μm;下述算法由平台相对移动量可算出各执行器(U、V、W)的移动量。回转中心(at,bt)指......
  • [信创]--关于信创,你需要了解的
    信创是什么意思?神秘的“信创” 一分钟带你了解信创 信创-包括国内哪些各细分行业和上市公司?---内容来自网络整理......
  • 一篇关于卧铺、雪夜和温暖的旅程的晨风
    (此处插入火车经过铁轨和风雪的声音我半靠在床头,手里拿着一本书(可以替换成你喜欢的书籍),望向窗外纷飞的大雪,兀自出神。坐久了,顺手拿过一个枕头,塞在背后,撑住我有些酸痛的腰椎,找到一个轻松舒服的姿势。又把被子往上扯了扯,让自己更暖和些。 就这样,我随这列有些老旧的K386次绿皮火车......
  • 关于服务迁移后测试接口发现的SQLSyntaxErrorException:Table'XXXXX表' doesn't exist
    首先,这是我这种粗心的小白经常的犯错内容,作为日常记录,警醒自己避免大意先来看报错 报错很明显,查询的表不存在,但是我要查询的是t_industry表,表名字都不一样,也对比了数据库名字没有写错.多方测试后无果,紧接着找配置文件application-test,查看数据源也是以前配置好的,好......
  • python Matplotlib库:根据excel生成各种柱状图
    我将向大家介绍如何使用Python和一些常见的库来根据Excel数据生成十种不同类型的图表。通过多维度的可视化,我们可以更全面地了解数据中的模式、趋势和关系。无论您是数据分析师、市场营销人员还是研究人员,这些图表将帮助您挖掘数据中更多的信息。1.准备工作 首先,我们需要安装一些......
  • 看完就会!一篇讲透关于企业帮助中心!
    引言:在现代商业环境中,企业帮助中心成为了为用户提供支持和解决问题的重要渠道。一个高效的企业帮助中心可以极大地提升用户满意度,增强品牌形象,并减轻客服团队的工作压力。本文将探讨企业帮助中心的重要性,以及建立和优化帮助中心的关键步骤,帮助企业为用户提供卓越的支持体验。第一部......
  • 关于使用CH32系列MCU定时器输出移相PWM波形
    在定时器的输出模式中,有一种输出模式—翻转模式,通过使用该模式,可以使用一个定时器不同通道输出移相PWM波形。关于翻转模式,当核心计数器与比较捕获寄存器的值相同时,翻转该通道的电平。使用翻转模式配置输出移相PWM波形代码如下:/**********************************(C)COPYRIGH......
  • 关于如何来测一款app的思考
    最近工作当中需要整体测一遍app,需要全方面思考并且尽可能覆盖所有待测点,因为整理总结了这篇关于app测试的总体大纲一、功能测试1.1界面测试1.1.1导航测试---是否易于导航、导航是否直观---不同页面之间的连接需要导航---是否需要搜索引擎---菜单、列表、窗口、对话框、按......
  • 关于html5的学习和几款常用软件
    css样式表的三种样式优先级,原则就是就近原则,内联样式>内部样式>外部样式。 去除a标签下划线,设置style="text-decoration:none"。 引入外部css样式文件,在head中使用link标签引入。 如果把链接的target属性设置为"_blank",该链接会在新窗口中打开。 &nbsp空格占位符......