从零开始学数据结构系列之第四章《拓扑排序之有向无环图》

文章目录


DAG

DAG(Directed Acyclic Graph)叫做有向无环图

首先简单介绍一下什么是图。

​   一个图(graph)是由两部分组成:点(vertex)和边(edge)。

  • 无向图,结点的简单连接
  • 有向图,连接有方向性
  • 加权图,连接带有权值
  • 加权有向图,连接既有方向性,又带有权值
  • 出度:由一个顶点出发的边的总数
  • 入度:指向一个顶点的边的总数
  • 有向路径:图中的一组顶点可以满足从其中任意一个顶点出发,都存在一条有向边指向这组顶点中的另一个。
  • 有向环:至少含有一条边的起点和终点都是同一个顶点的一条有向路径。
  • 简单有向环:一条不含有重复顶点和边的环。
  • 路径或环的长度就是他们包含的边数。

​ 所谓有向无环图其实就是:有方向的边;这些边在一个图中不会构成一个闭合的环路。

**如果一个有向图无法从任意顶点出发经过若干条边回到该点,则这个图就是有向无环图,**具体如图所示。

  从图可以看出,4→6→1→2是一条路径,4→6→5也是一条路径,并且图中不存在从顶点经过若干条边后能回到该点。

​   有向无环图常用来描述一个工程或系统的进行过程。(通常吧计划、施工、生产、程序流程等当成是一个工程)
下图就是有向有环图


☁️ 以上就是所有内容,对大家有用的话点个关注!感谢大家!

往期回顾

1.【第一章】《线性表与顺序表》
2.【第一章】《单链表》
3.【第一章】《单链表的介绍》
4.【第一章】《单链表的基本操作》
5.【第一章】《单链表循环》
6.【第一章】《双链表》
7.【第一章】《双链表循环》
8.【第二章】《栈》
9.【第二章】《队》
10.【第二章】《字符串暴力匹配》
11.【第二章】《字符串kmp匹配》
12.【第三章】《树的基础概念》
13.【第三章】《二叉树的存储结构》
14.【第三章】《二叉树链式结构及实现1》
15.【第三章】《二叉树链式结构及实现2》
16.【第三章】《二叉树链式结构及实现3》
17.【第三章】《二叉树链式结构及实现4》
18.【第三章】《二叉树链式结构及实现5》
19.【第三章】《中序线索二叉树理论部分》
20.【第三章】《中序线索二叉树代码初始化及创树》
21.【第三章】《中序线索二叉树线索化及总代码》
22【第三章】《先序线索二叉树理论及线索化》
23【第三章】《先序线索二叉树查找及总代码》
24【第三章】《后续线索二叉树线索化理论》
25【第三章】《后续线索二叉树总代码部分》
26【第三章】《二叉排序树基础了解》
27【第三章】《二叉排序树代码部分》
28【第三章】《二叉排序树代码部分》
29【第三章】《平衡二叉树基础概念》
30【第三章】《平衡二叉树的平衡因子》
31【第三章】《平衡二叉树的旋转基础详解》
32【第三章】《平衡二叉树的旋转类型图文详解》
33【第三章】《平衡二叉树的旋转类型总结及总代码》
34【第三章】《哈夫曼树简单了解》
35【第三章】《哈夫曼树的构造方法》
36【第三章】《哈夫曼编码构造及代码》
37【第四章】《图的定义》
38【第四章】《图的基本概念和术语》
39【第四章】《图的存储结构》
40【第四章】《图的遍历之深度优先遍历》
41【第四章】《广度优先遍历BFS》
42【第四章】《图的遍历总代码》
43【第四章】《最小生成树概念》
44【第四章】《最小生成树的应用举例》
45【第四章】《prim算法(普里姆算法)详解》
46【第四章】《prim算法(普里姆算法)详解2》
47【第四章】《prim算法(普里姆算法)详解3》
48【第四章】《prim算法(普里姆算法)讲解汇总》
49【第四章】《prim算法(普里姆算法)代码讲解》
50【第四章】《prim算法(普里姆算法)总代码》
51【第四章】《克鲁斯卡尔算法思路介绍》
52【第四章】《克鲁斯卡尔算法步骤思路1》
53【第四章】《克鲁斯卡尔算法步骤思路2》
54【第四章】《克鲁斯卡尔算法应用场景-公交站问题》
55【第四章】《克鲁斯卡尔算法判断回路问题》
56【第四章】《克鲁斯卡尔算法步骤回顾》
57【第四章】《克鲁斯卡尔算法代码初始化详解》
58【第四章】《克鲁斯卡尔算法总代码详解》
59【第四章】《了解最短路径》
60【第四章】《迪杰斯特拉算法了解》
61【第四章】《Dijkstra 迪杰斯特拉算法图解》
62【第四章】《Dijkstra 迪杰斯特拉算法总代码》
63【第四章】《弗洛伊德(floyd)算法简介》
64【第四章】《弗洛伊德算法详解》
65【第四章】《弗洛伊德代码详解》

相关推荐
白色的北极熊4 分钟前
c语言 求余运算符
c语言·数据结构·算法
杨连江10 分钟前
带倒刺植物草茎误入气管的特殊风险机制与规范处置研究
经验分享
坤坤子吖13 分钟前
Python基础语法学习:列表和元组
开发语言·笔记·python·学习
波尔德20 分钟前
Origin 2024 绘制钟形正态分布曲线:填充颜色并导出透明 PNG
人工智能·算法
JWASX23 分钟前
Java 转 go 学习 - 接口
学习·golang
Omics Pro31 分钟前
微软:多模态生物世界模型
数据库·人工智能·算法·microsoft·机器学习·自然语言处理
by2099931 分钟前
list 的使用:把节点、位置和操作联系起来的综合叙述(上)
数据结构·c++·笔记·list
I Am a robert girl33 分钟前
从零读懂世界模型的持续学习:一份组合式基准的源码级拆解
学习·具身智能·持续学习·灾难性遗忘·机器人学习·世界模型·组合式基准
恒锐丰科技林技术员35 分钟前
EG3014S 半桥驱动芯片:无刷电机与功率变换的优选栅极驱动器件
经验分享·嵌入式硬件·硬件工程
hai31524754337 分钟前
语言学集合定律
人工智能·算法