数据结构 C6 图(中)

简介: 数据结构 C6 图

6.4图的应用


6.4.1最小生成树


最小生成树的概念

什么是生成树?

1670675054475.jpg

1670675068317.jpg

怎么做呢?

1670675084294.jpg

有没有更便宜的修路方案呢?

有的话就叫做

1670675094786.jpg

1670675115272.jpg

Prim算法

1670675129774.jpg

1670675141384.jpg

换一种连法

1670675150963.jpg

同一个有多种最小生成树,但是时数值都是一样的


换一个顶点开始:从农场出发

1670675159122.jpg

1670675172336.jpg

机器实现:

1670675181744.jpg

1670675189416.jpg

更新

1670675199906.jpg

1670675208514.jpg

1670675231184.jpg

Kruskal算法

1670675264510.jpg

1670675272624.jpg

机器实现:

1670675296610.jpg

1670675304160.jpg

1670675314119.jpg

1670675323539.jpg

1670675331032.jpg

1670675338044.jpg

1670675345967.jpg

6.4.2最短路径

1670675361774.jpg



单源最短路径-DFS算法解决单源问题

只有一个源头

1670675370564.jpg

1670675379201.jpg

void BFS_MIN_Distance(Graph G,int u){
for(i=0;i<G.vexnum;++i){
  d[i]=MAX;
  path[i]=-1;
}
  d[u]=0;
  visited[u]=TRUE;
Enqueue(Q,u);
while(!isEmpty(Q)){
Dequeue(Q,u);
for(w=FirstNeighbor(G,u);w>=0;w=NextNeighbor(G,u,w))
if(!vosoted[w]){
    d[w]=d[u]+1;
    path[w]=u;
    visited[w]=TRUE;
Enqueue(Q,w);
}
}
}

1670675416550.jpg

单源最短路径-Dijkstra算法

BFS算法只能解决无权图 或者权值都相同的图

1670675429862.jpg

1670675437203.jpg

1670675444421.jpg

1670675450298.jpg

1670675458323.jpg

机器实现以及时间复杂度

1670675466690.jpg

当为负权值的边的图 该算法不适用

1670675478481.jpg

相关文章
|
6月前
|
存储 算法
数据结构===图
数据结构===图
|
5月前
|
算法 Python
逆袭之路!用 Python 玩转图的 DFS 与 BFS,让数据结构难题无处遁形
【7月更文挑战第12天】图的遍历利器:DFS 和 BFS。Python 中,图可表示为邻接表或矩阵。DFS 沿路径深入,回溯时遍历所有可达顶点,适合找路径和环。BFS 层次遍历,先近后远,解决最短路径问题。两者在迷宫、网络路由等场景各显神通。通过练习,掌握这些算法,图处理将游刃有余。
67 3
|
5月前
|
存储 算法 Python
“解锁Python高级数据结构新姿势:图的表示与遍历,让你的算法思维跃升新高度
【7月更文挑战第13天】Python中的图数据结构用于表示复杂关系,通过节点和边连接。常见的表示方法是邻接矩阵(适合稠密图)和邻接表(适合稀疏图)。图遍历包括DFS(深度优先搜索)和BFS(广度优先搜索):DFS深入探索分支,BFS逐层访问邻居。掌握这些技巧对优化算法和解决实际问题至关重要。**
52 1
|
6月前
|
存储
数据结构学习记录——如何建立图(邻接矩阵、邻接表-图节点的结构、创建并初始化、插入变、完整图的建立)
数据结构学习记录——如何建立图(邻接矩阵、邻接表-图节点的结构、创建并初始化、插入变、完整图的建立)
98 0
|
6月前
|
存储 算法
数据结构学习记录——图应用实例-六度空间(题目描述、算法思路、伪代码及解读、图解)
数据结构学习记录——图应用实例-六度空间(题目描述、算法思路、伪代码及解读、图解)
71 0
|
6月前
|
存储 算法 安全
数据结构学习记录——图应用实例-拯救007(问题描述、解题思路、伪代码解读、C语言算法实现)
数据结构学习记录——图应用实例-拯救007(问题描述、解题思路、伪代码解读、C语言算法实现)
47 0
|
6月前
|
存储 C语言
数据结构学习记录——图的遍历(深度优先搜索、广度优先搜索、为什么需要两种遍历、图不连通怎么办)
数据结构学习记录——图的遍历(深度优先搜索、广度优先搜索、为什么需要两种遍历、图不连通怎么办)
73 0
|
6月前
|
存储 机器学习/深度学习
数据结构学习记录——什么是图(抽象数据类型定义、常见术语、邻接矩阵表示法、邻接表表示法)
数据结构学习记录——什么是图(抽象数据类型定义、常见术语、邻接矩阵表示法、邻接表表示法)
78 0
|
7月前
|
算法
【高阶数据结构】图 -- 详解(下)
【高阶数据结构】图 -- 详解(下)
|
7月前
|
存储
【高阶数据结构】图 -- 详解(上)
【高阶数据结构】图 -- 详解(上)