数据结构与算法图

合集下载

北京林业大学《数据结构与算法》课件PPT 第6章 图

北京林业大学《数据结构与算法》课件PPT 第6章 图
顶点的入度均为1,此时是何形状? 答:是树!而且是一棵有向树!
北京林业大学信息学院
路径:接续的边构成的顶点序列。 路径长度:路径上边或弧的数目/权值之和。 回路(环):第一个顶点和最后一个顶点相同的路径。 简单路径:除路径起点和终点可以相同外,其余顶点均不相同
的路径。 简单回路(简单环):除路径起点和终点相同外,其余顶点均不
• 原来烤肉店老板是伊拉克移民,有个朋友住在加州 ,刚好这个朋友的同事,是电影《这个男人有点色 》的制作人的女儿在女生联谊会的结拜姐妹的男朋 友,而马龙·白兰度主演源自这部片子。北京林业大学信息学院
验证—数据
• 微软的研究人员过滤2006年某个单一月份 的MSN短信
• 利用二点四亿使用者的三百亿通讯息进行 比对,结果发现任何使用者只要通过平均 6.6人就可以和全数据库的一千八百亿组配 对产生关连。
相同的路径。
北京林业大学信息学院
连通图(强连通图)
在无(有)向图G=( V, {E} )中,若对任何两个顶点 v、u 都存在从v 到 u 的路径,则称G是连通图(强 连通图)。
连 通 图
V0
V1
V2
V3
V4
V0 V3
V1 V4
非 连

V2 V5 图
强 V0
V1


图 V2
V3
北京林业大学信息学院
V0
北京林业大学信息学院
验证—实例
• 烤肉店老板——加州朋友——朋友同事—— 制作人的女儿——制作人——马龙·白兰度
• 一家德国报纸接受了一项挑战,要帮法兰克福的一 位土耳其烤肉店老板,找到他和他最喜欢的影星马 龙·白兰度的关联。
• 经过几个月,报社的员工发现,这两个人只经过不 超过六个人的私交,就建立了人脉关系。

第4章-哈工大-数据结构-图结构及其应用算法

第4章-哈工大-数据结构-图结构及其应用算法

第4章图结构及其应用算法数据结构与算法Data Structures andgAlgorithms张岩海量数据计算研究中心哈工大计算机科学与技术学院第4章图结构及其应用算法2016/11/20Slide 4-2——图论欧拉欧拉1707年出生在瑞士的巴塞尔城,19岁开始发表论文,直到76岁。

几乎每一个数学领域都可以表论文直到76岁几乎每个数学领域都可以看到欧拉的名字,从初等几何的欧拉线,多面体的欧拉定理,立体解析几何的欧拉变换公式,四次方程的欧拉解法到数论中的欧拉函数,微分方程的欧拉方程,级数论的欧拉常数,变分学的欧拉方程,复变函数的欧拉公式等等。

据统计他那不倦的一生,共写下了886本书籍和论文,其中分析、代数、数论占40%,几何占18%,物理和力学占28%,天文学占11%,弹道学、航海学、力学占28%天文学占11%弹道学航海学建筑学等占3%。

1733年,年仅26岁的欧拉担任了彼得堡科学院学教授年到林担任科了彼得堡科学院数学教授。

1741年到柏林担任科学院物理数学所所长,直到1766年,重回彼得堡,没有多久,完全失明。

欧拉在数学上的建树很多,对著名的哥尼斯堡七桥问题的解答开创了图论的研究。

哥尼斯堡七桥问题能否从某个地方出发,穿过所有的桥仅一次后再回到出发点?学习目标图结构是一种非线性结构,反映了数据对象之间的任意关系,在计算机科学、数学和工程中有着非常广泛的应用。

了解图的定义及相关的术语,掌握图的逻辑结构及其特点;了解图的存储方法,重点掌握图的邻接矩阵和邻接表存储结构;掌握图的遍历方法,重点掌握图的遍历算法的实现;了解图的应用,重点掌握最小生成树、双连通性、强连通性、最短路径、拓扑排序和关键路径算法的基本思想、算法原理和实现过程。

本章主要内容4.1 图的基本概念4.2 图的存储结构4.3 图的遍历(搜索)4.4 最小生成树算法4.5 双连通性算法4.5双连通性算法4.6 强连通性算法4.7最短路径算法4.7 最短路径算法4.8 拓扑排序算法4.9 关键路径算法本章小结本章的知识点结构基本的数据结构(ADT)图无向图有向图加权图网络图(无向图、有向图;加权图----网络)知识点结构定义及相关术语逻辑结构及其特征ADT定义A逻辑结构静态的结构基本操作(算法)存储结构(描述)ADT基本动态的操作存储结构特点存储结构的定义ADT实现数据结构存储结构静态的结构操作(算法)实现算法的性能应用:最小生成树最短路径拓扑排序和关键路径动态的操作,,图的搜索(遍历)算法是有关图问题的重要核心算法!4.1基本定义4.1定义1 图(Graph)图是由顶点(vertex)的有穷非空集合和顶点之间边(edge)的集合组成的一种数据结构,通常表示为:G = (V,E)其中:G表示一个图,V是图G中顶点的集合,E是图G中顶点之间边的集合。

数据结构与算法课程设计报告---图的算法实现

数据结构与算法课程设计报告---图的算法实现

数据结构与算法课程设计报告课程设计题目:图的算法实现专业班级:信息与计算科学1002班目录摘要 (1)1、引言 (1)2、需求分析 (1)3、概要设计 (2)4、详细设计 (4)5、程序设计 (10)6、运行结果 (18)7、总结体会 (19)摘要(题目): 图的算法实现实验内容图的算法实现问题描述:(1)将图的信息建立文件;(2)从文件读入图的信息,建立邻接矩阵和邻接表;(3)实现Prim、Kruskal、Dijkstra和拓扑排序算法。

关键字:邻接矩阵、Dijkstra和拓扑排序算法1.引言本次数据结构课程设计共完成图的存储结构的建立、Prim、Kruskal、Dijkstra 和拓扑排序算法等问题。

通过本次课程设计,可以巩固和加深对数据结构的理解,通过上机和程序调试,加深对课本知识的理解和熟练实践操作。

(1)通过本课程的学习,能够熟练掌握数据结构中图的几种基本操作;(2)能针对给定题目,选择相应的数据结构,分析并设计算法,进而给出问题的正确求解过程并编写代码实现。

使用语言:CPrim算法思想:从连通网N={V,E}中的某一顶点v0出发,选择与它关联的具有最小权值的边(v0,v),将其顶点加入到生成树的顶点集合V中。

以后每一步从一个顶点在V中,而另一个顶点不在V中的各条边中选择权值最小的边(u,v),把它的顶点加入到集合V中。

如此继续下去,直到网中的所有顶点都加入到生成树顶点集合V中为止。

拓扑排序算法思想:1、从有向图中选取一个没有前驱的顶点,并输出之;2、从有向图中删去此顶点以及所有以它为尾的弧;重复上述两步,直至图空,或者图不空但找不到无前驱的顶点为止。

没有前驱-- 入度为零,删除顶点及以它为尾的弧-- 弧头顶点的入度减1。

2.需求分析1、通过键盘输入建立一个新的有向带权图,建立相应的文件;2、对建立的有向带权图进行处理,要求具有如下功能:(1)用邻接矩阵和邻接表的存储结构输出该有向带权图,并生成相应的输出结果;(2)用Prim、Kruskal算法实现对图的最小生成树的求解,并输出相应的输出结果;(3)用Dijkstra算法实现对图中从某个源点到其余各顶点的最短路径的求解,并输出相应的输出结果;(4)实现该图的拓扑排序算法。

数据结构与算法

数据结构与算法

数据结构与算法第一节数据结构及算法概述一、数据结构图、四类基本结构的示意图【要点】 1 .数据元素是数据的基本单位。

2 .数据结构是相互之间存在一种或多种特定关系的数据元素的集合。

3 .4类基本的规律结构:集合、线性结构、树形结构和网状结构。

4 .4种数据存储方式:挨次、链式、索引和散列。

【例题•单选题】(2022年义省信用社聘请考试真题)下列说法不正确的是()OA.数据元素是数据的基本单位B.数据项是数据中不行分割的最小标志单位 C.数据可由若干个数据元素构成D.数据项可由若干个数据元素构成『正确答案』D『答案解析』数据元素是数据的基本单位,在计算机程序中通常被作为一个整体进 行考虑和处理。

一个数据元素可由若干个数据项组成。

数据项是不行分割的、含有独立 意义的最小数据单位。

因此D 选项不正确。

二、算法O ——O ——O ——O ——O ⑹树型结构⑹线性结构 (d)图形结构算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每条指令表示一个或多个操作。

算法的特性:有穷性、确定性、可行性、输入和输出。

【要点】评价算法优劣标准:正确性、可读性、健壮性、高效率与低存储量需求。

其次节线性表线性表是n (n≥0)个数据元素al, a2,…,an组成的有限序列,n=0时称为空表。

非空的线性表,有以下特征:L有且仅有一个开头结点al,没有直接前趋,有且仅有一个直接后继a2。

2.有且仅有一个终结结点an,没有直接后继,有且仅有一个直接前趋a-。

3.其余的内部结点ai (2WiWnT)都有且仅有一个直接前趋a-和一个直接后继3i+ι o线性表的链式存储包括单链表、循环链表和双链表。

head 头结点百结点尾结点【留意】与单链表的插入和删除操作不同的是,在双链表中插入和删除须同时修改两个方向上的指针。

第三节栈和队列一、栈栈是一种“特别的”线性表,这种线性表中的插入和删除运算限定在表的某一端进行。

不含任何数据元素的栈称为空栈。

数据结构与算法 (2)

数据结构与算法 (2)

First started programming : have no ADT
–Writing the same code over and over
Data Sagtrauincture can be defined as:Exa•mAtpolemfiocr DADatTa: tahreecsoidneglteo arenadd the 1ea.Ak♠stcheWehcayAtebotoon•adohcmkAfAdwsoaafoanwtebrntwndinoadoatc-ihwha,ndmaiblsttatfiyetbauewcaihirspcstncahtheipaeotcdotaordeintimooaotniscforadnpcanofpnatoeotentaosdtprhidfriostmasaaetaheiatmystcahetlibopatokeidisrtlpcaenymedtatpogyeswedieepnesrdntaonanedhcadtttthaaapiiitesttsoneotayafai.ngaardndntresoseaeddt,,dthaaaaet.ar
bank toopdeertaetrimoninse tellers.
1-3 Model for an Abstract Data Type
In this section we provide a conceptual model for an Abstract Data Type (ADT).
t2rienyel.eApvwl–l♠adb3aiasqmoAene2raittsuehlbit7tevoeeo1ewa––s6{s•idauniut6rxdnFAt+Aens8mT123rneitetaboesuoasra,eegsn~s...th:r-mtinncefmhnanp,tti3DEDtaon*stcatoatyaeioipci,2ihtotpntgfeectc/ncisihotls,o…o7nnmeceuasccohiisienlfdmnn:6mtailliil(pneeaaeoscos}sgasg7ppruikrdhegrra:ioecfcattf}ssraaelaurhr,enadiaomintuiCcshmdudmttaalitsetrsaiipdagtleauooaatdtcfyabfrl:opncieetoieoiirannnnbtsaptvootatlioadmarrhaefuilgntte-ieotonnmoozeambinstnfrette.pntfhaisffheyhuetediwobdesto{tenrapdeo)eyoim-lenoneouasdgnbeapptfdtinfohricbamistotte.riedtainhahapaotteneotr.ipauthtkeaoetiagfrkathTltserndesretoaedlaeiahtsmniroapnyna.te,taenitepeatosanriasneusannod.t.ctfatsiohoatinoasnssa

《数据结构与算法 》课件

《数据结构与算法 》课件
自然语言处理
自然语言处理中,数据结构用于表示句子、单词之间的关系,如依 存句法树。
计算机视觉
计算机视觉中的图像处理和识别使用数据结构来存储和操作图像信 息,如链表和二叉树。
算法在计算机科学中的应用
加密算法
加密算法用于保护数据的机密性和完整性,如 RSA算法用于公钥加密。
排序算法
排序算法用于对数据进行排序,如快速排序和归 并排序广泛应用于数据库和搜索引擎中。
归并排序
将两个或两个以上的有序表组合成一个新的有序表。
查找算法
线性查找:从数据结构的一端开始逐 个检查每个元素,直到找到所查找的 元素或检查完所有元素为止。
二分查找:在有序数据结构中查找某 一特定元素,从中间开始比较,如果 中间元素正好是要查找的元素,则搜 索过程结束;如果某一特定元素大于 或者小于中间元素,则在数组大于或 小于中间元素的那一半中查找,而且 跟开始一样从中间元素开始比较。如 果在某一步骤数组为空,则代表找不 到。这种搜索算法每一次比较都使搜 索范围缩小一半。
04
常见算法实现
排序算法
冒泡排序
通过重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复 地进行直到没有再需要交换,也就是说该数列已经排序完成。
快速排序
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据要小,然后再按 此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
数据结构在计算机科学中的应用
1 2
数据库系统
数据结构是数据库系统的基础,用于存储、检索 和管理大量数据。例如,B树和哈希表在数据库 索引中广泛应用。

数据结构与算法分析

数据结构与算法分析

路径
1.
2.
3. 4. 5.
6.
在无向图G 中,若存在一个顶点序列vp ,vi1 , vi2 , …vim ,vq,使得 (vp ,vi1),(vi1 ,vi2), …,(vim ,vq )∈E(G),则称顶点序列 (vp ,vi1),(vi1 ,vi2), …,(vim ,vq )∈E(G) 为从vp到vq的一条 (Path)。 在有向图G 中,若存在一个顶点序列vp ,vi1 , vi2 , …vim ,vq,使得有 向边<vp ,vi1>, <vi1 ,vi2>, …,<vim ,vq >∈E(G),则称顶点vp路到vq有 一条有向路径(Path)。 无权图的路径长度是指此路径上边的条数。 有权图的路径长度是指路径上各边的权之和。 简单路径:若路径上各顶点vp ,vi1 , vi2 , …vim ,vq均不互相同, 则称这 样的路径为简单路径。 环:若简单路径长度大于2,且第一个顶点v1 与最后一个顶点vm 重 合, 则称这样的简单路径为回路或环。
3 0 1 0 1 6 4 2
3
0 1
4
2
3
2
6
5
4
5
G的连通分量
6
5
是连通分量吗?
无向图G
强连通


在有向图中, 若一对顶点vi和vj存在一条从vi到vj和从vj到vi的路径, 则 称vi和vj是强连通的。 若有向图中任意两个顶点都是强连通的,则称该图为强连通图。 有向图的极大强连通子图称为图的强连通分量 例:

0 1 3
2 4
无向图G1
有向图
若图G的每条边都有方向,则称G为有向图(Digraph)。 有向边(即弧)由两个顶点组成的有序对来表示,记为< 起始点,终止点y> (也可称<弧尾,弧头>)。 举例: V(G2)={0,1,2,3,4} E(G2)={<0,3>,<1,0>,<1,2>,<3,1>,<3,4>,<4,2>}

数据结构与算法(共11张PPT)

数据结构与算法(共11张PPT)

(b)入队3个元素(c)出队3个元素
(b) d, e, b, g入队
利用一组连续的存储单元(一维数组)依次存放从队 在循环队列中进行出队、入队操作时,队首、队尾指
队列示意图
在非空队列里,队首指针始终指向队头元素,而队
(b) d, e, b, g入队
8
Q.rear
a5
a4
Q.front
(d)入队2个元素
a1, a2, … , an
的指修针改 和是队依列先中进元先素出的Q的变.re原化a则情r 进况行。的,如图所示。
a3
Q.front
a2
a1
首到队尾的各个元素,称为顺序队列。
(c)
d, e出队Q.front
Q.front
◆出队:首先删去front所指的元素,然后将队首指针front+1,并
◆rear所指的单元始终为空(a。)空队列
i
i, j, k入队
(e)
1
2
3
k
r
01
j5
2
front
43
i
b, g出队
(f )
r, p,
p rear
s, t入队
循环队列操作及指针变化情况
入队时尾指针向前追赶头指针,出队时头指针向前追赶尾指针 ,故队空和队满时头尾指针均相等。因此,无法通过front=rear来 判断队列“空”还是“满”。解决此问题的方法是:约定入队前,
数据结构与算法
1算法基础 2数据结构
3栈
4队列
5链表 6树和二叉树
7查找
4队列
✓队列的基本概念 ✓队列运算
✓循环队列及其运算
4队列
1.队列的基本概念
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
得u ' ∈U,v ' ∈V-U,且u和u '之间,v和v '之间均有路径相连通。
将边(u ' ,v ' )删除,这样就消除了上述回路,并得到了另一棵生成树T' 。 由于W(u,v) ≤W(u ',v '),所以生成树T '的耗费不大于树T的耗费。于是T ' 是一棵包含边(u,v)的最小生成树,这与假设矛盾。


用反证法证明如下:
v)的回路。
假设网G的任何一棵最小生成树都不包含边(u,v),显然当把边(u,v) 普里姆( Prim)算法 T中时,由生成树的定义,将产生一个含有边(u, 加入到G的一棵最小生成树
克鲁斯卡尔(Kruskal)算法 由于T是生成树,T中必存在不同于边(u,v)的另一条边(u',v ' ),使
通信工程教研室
二、Prim算法
Prim算法构造最小生成树的过程
1 6 2 3 5 1

5 5 4 2 6 2 3 5
1
6 1 5 3 6 6
5 5
5
3 6
4
2 6
4
4
6
通信工程教研室
二、Prim算法
练习
A
21 19 33 F 14 12 12 B
13
9 9
8 8
C
9
E 18
D
边权值总和:8+9+12+13+18=60
通信工程教研室
五、Kruskal算法的计算机实现
算法描述
例 2 3 5 1 6 1 5 3 6 4 5 5 4 2 6 1 2 3 5 1 3 4 4 2
data 1 1
2
jihe 1 2
2
3 4 5 6
2
32 1 42 1 5 2 61 2 4
3
4 5 6
vexh vext weight flag 0 2 6 0 1 1 0 3 1 1 1 2 1 0 4 5 2 3 4 5 6 7 8 9 2 3 5 4 5 6 6 6 5 3 5 6 4 2 6
通信工程教研室
一、基本概念
1. 图的生成树 若G 是连通图G的子图,并有: V(G ') = V(G), E(G ) ⊆ E(G),还满足:G 是连通图,且所有顶点不 存在回路;G 是图G的一棵生成树。 2. 图的最小生成树 图G的生成树是一棵包含G的所有顶点的树,树上所
有权值总和表示代价,那么在G的所有的生成树中,
30
A→D: (A, D)30
A→通信工程教研室
7.6.1 单源最短路径
10
B
50 10
S={A, B} C
20
A
100
A→B:(A, B)10
30
A→C:(A, B, C)60
A→D: (A, D)30
E
60
D
A→E: (A, E)100
通信工程教研室
7.6.1 单源最短路径
通信工程教研室
二、Prim算法
算法思想

设G=(V,{E})是连通网,TE是G上最小生成树中边的集合, 则Prim算法通过以下步骤得到最小生成树:
初始状态:U = {u0},TE = {}。其中u0是顶点集合V中的某 一个顶点; 在所有u∈U,v∈V-U的边(u,v)∈E中找一条权值最小的边 (u0,v0),将这条边加进集合TE中,同时将此边的另一顶 点v0并入U; 如果U = V,则算法结束;否则重复步骤2; 算法结束时,TE中包含了G中的n-1条边。经过上述步骤选 取到的所有边恰好就构成了图G的一棵最小生成树。
V1 6
V3 5 V3 5 V3 5 0 0
V1 1
0 0 0 0 0
V1 5
V1 5 V6 2 0 0 0
V1 ∞
V3 6 V3 6 V3 6 V2 3 0
V1 ∞
V3 4 0 0 0 0
{V1} {V1,V3}
{V2,V3,V4,V5,V6} {V2,V4,V5, V6}
2
5 3 1 4
{V1,V3,V6}
单源最短路径 7.6.2 每对顶点之间的最短路径
通信工程教研室
7.6 最短路径

在非网图中,最短路径是指两顶点之间经历的边数最 少的路径。 B
A
C
AE:1 ADE:2 ADCE:3 ABCE:3
E
D
通信工程教研室
7.6 最短路径

在网图中,最短路径是指两顶点之间经历的边上权值之 和最短的路径。 B
通信工程教研室
三、Kruskal算法
算法思想
初始状态:只有n个顶点而无边的非连通图T=(V,{}),每 个顶点自成一个连通分量; 在E中选取代价最小的边,若该边依附的顶点落在T中不同 的连通分量上,则将此边加入到T中;否则,舍去此边,选 取下一条代价最小的边; 依此类推,直至T中所有顶点都在同一连通分量上为止。
B
8 9
F
14
C 9
顶点—城市,边— 两城市之间的公路,权—相应的代价, 希望找到使n个城市连通的总造价最低的方案——构造最 小生成树。
通信工程教研室
7.5 最小生成树
问题分析
n个城市间,最多可修建n(n-1)/2条公路。 n个村镇间建立公路网,只需n-1条公路。
问题转化为:如何在可能的公路中选择n-1条,能把所有 村镇(顶点)均连起来,且总耗费(各边权 值之和)最小。
代价最小的生成树称为图G的最小生成树(minimum-
cost spanning tree,简称MST)。
通信工程教研室
一、基本概念
例:下图(b), (c), (d)为(a)所示连通图的不同生成树。
B E B A F (b) D B A F (d) D C F C E
A
D (a)
C
F
B A (c) D C
10
50 10
A
100
30
C
20
AE:100 ADE:90 ADCE:60 ABCE:70
E
60
D
通信工程教研室
7.6 最短路径
问题提出 用带权的有向图表示一个交通运输网,图中: 顶点——表示城市; 边——表示城市间的交通联系; 权——表示此线路的长度或沿此线路运输所花的时间 或费用等。 问题:从某顶点出发,沿图的边到达另一顶点所经过的路径中, 各边上权值之和最小的一条路径——最短路径。
数据结构与算法 第7 章 图
信息与通信工程学院
何伟
要点回顾
图的基本概念及存储方式 图的遍历
通信工程教研室
7.5 最小生成树
基本概念 Prim算法
Kruskal算法
通信工程教研室
7.5 最小生成树
问题提出
12 21 19 33 14 9 18 E 18 D 13 8 9 19 33 12 A 21 13
2
3 3 3 4 5
0 1 1 0 0 0 1 0 0 1 0
6
5
6
通信工程教研室
五、Kruskal算法的计算机实现

Kruskal算法的时间复杂度为O(eloge)。这个算法的时 间复杂度主要取决于边数,因此Kruskal算法适合于构 造稀疏图的最小生成树。
通信工程教研室
7.6 最短路径
7.6.1
(0)用顶点数组和边数组存放顶点和边信息;
(1)初始时,令每个顶点的jihe互不相同;每个边的flag为0; (2)选出权值最小且flag为0的边; (3)若该边依附的两个顶点的jihe 值不同,即非连通,则令该边的 flag=1, 选中该边;再令该边依附的两顶点的jihe 以及两集合中所有顶 点的jihe 相同; 若该边依附的两个顶点的jihe 值相同,即连通,则令该 边的flag=2, 即舍去该边; (4)重复上述步骤,直到选出n-1条边为止 。
0 8 32 13 9 2 5 1 7 17 6
最短路径
<V0,V1> <V0,V2> <V0,V2,V3> <V0,V2,V3,V4> <V0,V2,V3,V4,V5> <V0,V1,V6>
权值
13 8 13 19 21 20
30
2 5 3 6 4
迪杰斯特拉(Dijkstra)提出了一个按路径长度递增的
E
E
通信工程教研室
一、基本概念
2 B E 4 5 A 3 C 12 6 (a) 连通图 8
10
4 A
B
5 C
10
E
12
D
F
2 B E 4 A 3 C D 6 F (c) 边权值总和 23 8
D 6 F (b) 边权值总和 37 2 B E 5 A C 3 10 F D 6 (d) 边权值总和 26
{V1,V3,V6, V4} {V1,V3,V6, V4,V2} {V1,V3,V6,V4,V2,V5}
{V2,V4,V5}
{V2,V5} {V5} {}
通信工程教研室
四、Prim算法的计算机实现
设置辅助数组closedge,记录从U到V-U具有最小权值的边。对每个顶点 U U={ v0} V-U={ v1,V2,V3,V4,V5 } V0 5 viV-U, 在辅助数组中存在一个相应的分量 closedge[i-1] ,它包括两个域: 6 iclosedge[i-1].lowcost=Min{cost(u,vi)|u 1 0 1 2 3 4 U 5}:各顶点的边中,权值最小 5 5 V3 V 1 的边的权值; :表示上述权值最小的边所依附的 U集中的顶 V2 0 closedge[i-1].vex 0 0 0 0 0 Vex[i] 6 4 点。 3 2 0 6 1 5 max max lowcost[i] 6
相关文档
最新文档