*图论基础(5)

持续更新...

1.图的基本概念

不写了,网上有好多资料ovo

2.图的存储和遍历

2.1存储:

3.最小生成树

3.2Kruskal算法

4.拓扑排序

拓扑排序的⽬标是将有向⽆环图中的所有结点排序,使得排在前⾯的结点不能依赖于排在后⾯的结
点。在课程问题中,相当于就是找到⼀个排课的合法顺序。具体流程可借助队列进⾏:

vbnet 复制代码
1. 将图中所有⼊度为 0 的点,加⼊到队列中;
2. 取出队头元素,删除与该点相连的边。如果删除之后的后继结点的⼊度变为 0,加⼊到队列中;
3. 重复 2 操作,直到图中没有点或者没有⼊度为 0 的点为⽌。

拓扑排序判断是否有环:
跑⼀遍拓扑排序算法,如果有结点没有进队,那么就表明有环。
【题⽬描述】
有个⼈的家族很⼤,辈分关系很混乱,请你帮整理⼀下这种关系。给出每个⼈的后代的信息。输出⼀个序列,使得每个⼈的后辈都⽐那个⼈后列出。
【输⼊描述】
第 1⾏⼀个整数N ,表⽰家族的⼈数。接下来 N⾏,第 i⾏描述第i 个⼈的后代编号ai,j ,表⽰ai,j 是i 的后代。每⾏最后是0 表⽰描述完毕。
【输出描述】
输出⼀个序列,使得每个⼈的后辈都⽐那个⼈后列出。如果有多种不同的序列,输出任意⼀种即可。

5.单源最短路

vbnet 复制代码
• 单源最短路,即图中⼀个顶点到其它各顶点的最短路径。
• 多源最短路,即图中每对顶点间的最短路径

5.2 bellman-ford 算法(很暴力)
是⼀种基于松弛操作的最短路算法,可以求出有负权的图的最短路,并可以对最短路不存在的情况进⾏判断。
算法核⼼思想:不断尝试对图上每⼀条边进⾏松弛,直到所有的点都⽆法松弛为⽌。

6.多元最短路

相关推荐
悠仁さん15 天前
数据结构 图(代码实现篇 C语言版)
数据结构·算法·图论
江屿风15 天前
C++图论基础Bellman-Ford与spfa算法如何判断负环
开发语言·c++·笔记·算法·图论
papership16 天前
【入门级-算法-8、图论算法:泛洪算法 (Flood Fill)】
算法·图论
江屿风16 天前
C++图论基础单源最短路-常规版dijkstra算法/堆优化版dijkstra算法/bellman-ford 算法/spfa 算法流食般投喂
开发语言·c++·笔记·算法·图论
hai31524754318 天前
一种通过空间几何转换进行软件编程计算的方式与现有计算的对比
人工智能·深度学习·数学建模·硬件架构·几何学·图论·拓扑学
江屿风18 天前
C++图论基础拓扑排序经典OJ题流食般投喂
开发语言·c++·笔记·算法·图论
Lsk_Smion19 天前
力扣实训 _ [207].课程表/图论
数据结构·leetcode·图论
江屿风22 天前
C++图论基础最小生成树经典OJ题流食般投喂
开发语言·c++·笔记·算法·深度优先·图论
San813_LDD23 天前
[数据结构]LeetCode学习
数据结构·算法·图论
handler0124 天前
【算法】并查集(普通/扩展/带权)模板与例题
数据结构·c++·笔记·算法·c·图论·查并集