Java数据结构与Java算法学习Day11---有向图、拓扑排序、加权无向图、最小生成图、加权有向图、最短路径(简略笔记记录)
创始人
2024-03-26 12:15:29
0

目录

一、有向图 157

1.1有向图的定义及相关术语 157

1.2有向图的实现 158

二、拓扑排序 159

2.1检测有向图中的环 160

2.1.1检测有向图中环API设计 160

2.1.2检测有向环实现 161

2.2基于深度优先顶点排序 162

2.2.1顶点排序API设计

2.2.2顶点排序实现的原理过程

2.2.3顶点排序代码的实现及测试 162、163、164

三、加权无向图 165

3.1加权无向图边的表示---加权的边实现 166

3.2加权无向图边的表示---无向图的实现 167

四、最小生成图 168

4.1最小生成树定义及相关约定 168

4.2最小生成树原理---切分定理 169

4.2.1树的性质

4.2.2切分定理

4.3贪心算法 170

4.4Prim算法 171

4.4.1Prim算法API设计

4.4.2Prim算法的实现原理 172  

4.4.3Prim算法的代码实现及测试173、174、175

4.5kruskal算法 176

4.5.1kruskal算法API设计 

4.5.2kruskal算法的实现原理 177

4.5.3kruskal算法代码实现及测试 178、179

五、加权有向图 180

5.1加权有向图边的表示 180

5.2加权有向图的实现 181

六、最短路径182

6.1最短路径定义及性质 182

6.2最短路径树API设计 182

6.3松弛技术 183

6.4Dijstra算法实现及测试 184、185、186


一、有向图 157

图的边是有方向的

1.1有向图的定义及相关术语 157

 

1.2有向图的实现 158

 

二、拓扑排序 159

基于有向图实现拓扑排序。

2.1检测有向图中的环 160

检测有向图环的目的:

有向图中存在环,就没办法进行拓扑排序了

2.1.1检测有向图中环API设计 160

 成员变量:onStack的原理:利用栈的思想进行操作的。如下所示:

2.1.2检测有向环实现 161

2.2基于深度优先顶点排序 162

2.2.1顶点排序API设计

2.2.2顶点排序实现的原理过程

文档P11

2.2.3顶点排序代码的实现及测试 162、163、164

三、加权无向图 165

 ​​​​​​​

3.1加权无向图边的表示---加权的边实现 166

3.2加权无向图边的表示---无向图的实现 167

四、最小生成图 168

4.1最小生成树定义及相关约定 168

 

分别计算各个独立的连通图。这些组合在一起称为最小生成森林。

4.2最小生成树原理---切分定理 169

4.2.1树的性质

4.2.2切分定理

切分: 

横切边:

切分定理:

4.3贪心算法 170

基于切分定理实现的

步骤一:

步骤二:

步骤三:

 步骤四:

 步骤五:

 步骤六:

 步骤七:

 步骤八:直到所有的顶点都被连接起来,则说明查找完毕

 

 贪心算法是基础:

求最小生成树的算法都是贪心算法的一种变形

4.4Prim算法 171

Prim算法实现的过程:

步骤一:

 ​​​​​​​步骤二:

 其他的部分依次类推,就可以找到所有的最小生成树了。

4.4.1Prim算法API设计

4.4.2Prim算法的实现原理 172  

参考文档P27

4.4.3Prim算法的代码实现及测试173、174、175

4.5kruskal算法 176

 ​​​​​​​

 

 是将森林进行连接

4.5.1kruskal算法API设计 

本部分使用了并查集 

4.5.2kruskal算法的实现原理 177

文档P32

4.5.3kruskal算法代码实现及测试 178、179

五、加权有向图 180

5.1加权有向图边的表示 180

5.2加权有向图的实现 181

 

六、最短路径182

 ​​​​​​​

6.1最短路径定义及性质 182

这个不是最小生成树,最小生成树是所有的顶点都要连接起来,这个只是连接需要的两个顶点。

路径:可以是部分的连接

6.2最短路径树API设计 182

6.3松弛技术 183

 边的松弛:

 顶点的松弛:

 

6.4Dijstra算法实现及测试 184、185、186

 

 

相关内容

热门资讯

不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
APK正在安装,但应用程序列表... 这个问题可能是由于以下原因导致的:应用程序安装的APK文件可能存在问题。设备上已经存在同名的应用程序...
安卓文字转语音tts没有声音 安卓文字转语音TTS没有声音的问题在应用中比较常见,通常是由于一些设置或者代码逻辑问题导致的。本文将...
报告实验.pdfbase.tt... 这个错误通常是由于找不到字体文件或者文件路径不正确导致的。以下是一些解决方法:确认字体文件是否存在:...