- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
普里姆(Prim)算法:
假设N=(V,{E})是连通网,V={V1,V2,…,Vn}是网的顶点集合,{E}是N上最小生成树中边的集合。引入顶点集合U和边的集合TE,U的初试状态为{V1},它存放的是当前所得到的(还未完成的)最小代价生成树上所有顶点,TE的初始状态为{}。在Prim算法的每一步,都从所有的边{(u,v), u?U, v ?V}中找出所有代价最小的边(u,v),同时将v
并入U,(u,v)并入集合TE,直到U=V为止。此时TE中必有n-1条边,则T=(V,{TE})为N的最小生成树。
克鲁斯卡尔(Kruskal)算法:
假设G=(V,{E})是一个连通的无向图,其中V={1,2,…,n},引入辅助集合T,来存放当前所形成的最小生成树的所有边,其初始状态为空, Kruskal算法是逐步给T添加不和T中的边构成回路的当前最小代价边。
具体步骤:
1、初始化T={ };
2、当T的边小于n-1时,做如下工作;
3、从E(G)中选取代价最小的边(v,u)并删除之;
4、若(v,u)不和T中的边一起构成回路,则将边(v,u)并入T中。
5、循环2~4步,直到T中所有顶点都在同一个连通图上为止。
拓扑排序的计算机实现:
方法:采用邻接表作为有向图的存储结构,且在头结点中增加一个有效
顶点的入度,入度为零的顶点既为滑有前趋的顶点,删除顶点及
弧可以使入度减1。
为避免重复检测入度为零的顶点,可另设一链表将所有入度为零
的顶点链结到一起,每当输出便删除,反之,当有新的入度为零的顶
点则插入,这相当于一个栈。
算法:
1、查邻接表中入度为零的顶点,并进栈;
2、当栈非空时,进行拓扑排序;
(1) 输出栈顶的顶点Vj并退栈;
(2) 输出栈顶的顶点Vj的直接后继Vk(k=1,2,…),将Vk的入度
减1,并将入度为0的顶点进栈。
(3)若栈空时输出的顶点数不足AOV-网中顶点数n,则说明有
向图中存在有向环,否则拓扑排序完毕。
Status TopologicalSort(ALGraph G)
{
FindInDegree(G,indegree);
InitStack(S);
for(i=0;iG.Vexnum;++i)
if(!indegree(i))
push(S,i);
count=0;
if(!StachEmpty(s)){
pop(S,i);
printf(i,G.vertices(i),data);
count++;
for(p=G.vertices[i].firstarc; p ; p=p-nextarc){
k=p-adjvex;
if(!(--indegree(k)))
push(S,K);
}
}
if(countG.vexnum)
return ERROR;
else
return OK;
}
迪杰斯拉特(Dijkstra)算法:
该算法提出了一个按路径递增的顺序产生最短路径的算法。首先引入一个辅助向量D,它的分量D(i)表示当前所有找到的从始点V到每个终点Vi的最短路径的长度。其初态为:若从V到Vi有弧,则D(i)为弧上权,否则为无穷大;显然,长度为
D(j)=Min{D(i)| Vi? V}
的路径是从V出发的最短一条路径,此路径为(V, Vj )。
网络的可靠性
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述
A公司是全球依靠的互联网解决方案提供商,也是2010年世博会的高级赞助商。它将提供先进的网络协作技术,展示其”智能+互联“的生活概念,同时为参观者提供高品质的个人体验和互动,以”信息通信,尽情城市梦想”为主题贯穿。借助奇幻的剧场大屏幕和特效,展
文档评论(0)