- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
最小生成树经典算法
最小生成树的两种经典算法的分析及实现
摘要:数据结构是计算机科学的算法理论基础和软件设计的技术基础,在计算机领域中有着举足轻重的作用,是计算机学科的核心课程。构造最小生成树有很多算法,本文主要介绍了图的概念、图的遍历,并分析了PRIM和KRUSKAL的两种经典算法的算法思想,对两者进行了详细的比较,最后用这两种经典算法实现了最小生成树的生成。
关键词:连通图,赋权图,最小生成树,算法,实现
1 前言
假设要在n个城市之间建立通信联络网,则连接n个城市只需要n-1条线路。这时,自然会考虑这样一个问题,如何在节省费用的前提下建立这个通信网?自然在每两个城市之间都可以设置一条线路,而这相应的就要付出较高的经济代价。n个城市之间最多可以设置n(n-1)/2条线路,那么如何在这些可能的线路中选择n-1 条使总的代价最小呢?可以用连通网来表示n 个城市以及n个城市之间可能设置的通信线路,其中网的顶点表示城市,边表示两个城市之间的线路,赋予边的权值表示相应的代价。对于n个顶点的连通网可以建立许多不同的生成树,每一个生成树都可以是一个通信网。现在要选择这样一棵生成树,也就是使总的代价最小。这个问题便是构造连通网的最小代价生成树(简称最小生成树)的问题。一棵生成树的代价就是树上各边的代价之和。
2 图的概念
2.1 定义
无序积
在无序积中,
无向图 ,其中 为顶点(结点)集, 为边集, , 中元素为无向边,简称边。
有向图 ,其中 为顶点(结点)集, 为边集, , 中元素为有向边,简称边。
有时, 泛指有向图或无向图。
2.2 图的表示法
有向图,无向图的顶点都用小圆圈表示。
无向边 ——连接顶点 的线段。
有向边 ——以 为始点,以 为终点的有向线段。
2.3 概念
(1)有限图—— 都是有限集的图。
阶图—— 的图。
零图—— 的图。特别,若又有 ,称平凡图。
(2)关联 (边与点关系)——设边 (或 ),则称 与 (或 )关联。
无环
孤立点——无边关联的点。
环——一条边关联的两个顶点重合,称此边为环 (即两顶点重合的边)。
悬挂点——只有一条边与其关联的点,所对应的边叫悬挂边。
(3)平行边——关联于同一对顶点的若干条边称为平行边。平行边的条数称为重数。
多重图——含有平行边的图。
简单图——不含平行边和环的图。
2.4 完全图
设 为 阶无向简单图,若 中每个顶点都与其余 个顶点相邻,则称 为 阶无向完全图,记作 。
若有向图 的任一对顶点 ,既有有向边 ,又有有向边 ,则称 为有向完全图。
例如:
3 图的遍历
从图中某一顶点出发访遍图中其余顶点,且使每一顶点仅被访问一次。这一过程叫做的遍历。 遍历图的基本方法有两种:深度优先有哪些信誉好的足球投注网站和广度优先有哪些信誉好的足球投注网站。这两种方法都适用于有向图和无向图。 和树的遍历类似,图的遍历也是从某个顶点出发,沿着某条边有哪些信誉好的足球投注网站路径对图中所有顶点各作一次访问。若给定的图是连通图,则从图中任意顶点出发顺着边可以访问到该图中所有的顶点,然而,图的遍历比树的遍历复杂得多,这是因为图中的任一点都可能和其余顶点相邻接,故在访问了某个顶点之后,可能顺着某条回路又到了该顶点。为了避免重复访问同一个顶点,必须记住每个顶点是否被访问过。为此,可设置一个布尔向量visited[1..n],它的初值为false,一旦访问了顶点vi,便将visited[i]置为ture。连通图的深度优先有哪些信誉好的足球投注网站 连通图深度优先有哪些信誉好的足球投注网站的基本思想如下:假定图中某个顶点v1为出发点,首先访问出发点v1,然后任选一个v1的访问过的邻接点v2,以v2为新的出发点继续进行深度优先有哪些信誉好的足球投注网站,直至图中所有顶点被访问过。 显然,图的深度优先有哪些信誉好的足球投注网站是一个递归过程,类似于树的前序遍历,它的特点是尽可能先对纵深方向进行有哪些信誉好的足球投注网站,故称之深度优先有哪些信誉好的足球投注网站。 现以图中G为例说明深度优有哪些信誉好的足球投注网站过程。假定v1是出发点,首先访问v1。因v1有两个邻接点v2、v3均未被访问,选择v2作为新的出发点。访问v2之后,再找v2的未访问过的邻接点。同v2邻接的有v1、v4、v5,其中v1以被访问过,而v4、v5未被访问。选择v4作为新的出发点。重复上述有哪些信誉好的足球投注网站过程继续依次访问v8、v5。访问v5之后,由于与v5相邻的顶点均以被访问,有哪些信誉好的足球投注网站退回到v8。由于v8、v4、v2都没有未被访问的邻接点,所以有哪些信誉好的足球投注网站过程连续地从v8退回到v4,再退回到v2最后退回到v1这时选择v1的未被访问过的邻接点v3,继续往下有哪些信誉好的足球投注网站,依次访问v3、v6、v7,从而遍历了图中全部顶点。在这个过程中得到的顶点的访问v1→v2→v4→v8→v5→v3→v6→v7 这样的
文档评论(0)