下载此文档

最小生成树和迷宫求解问题.doc


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
#include<iostream>#include<fstream>usingnamespacestd;ifstreamfin("");#defineMAX_VERTEX_NUM20#defineERROR-1#defineINFINITY0x7fff//图的邻接矩阵存储结构typedefstruct{char*vexs;intarcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM];intvexnum,um;}Graph;//记录从顶点集U到V-U的代价最小的边的辅助数组定义:typedefstruct{charadjvex;intlowcost;}closedge;//图G中查找顶点c的位置intLocateVex(GraphG,charc){for(inti=0;i<;++i){if([i]==c)returni;}returnERROR;}intminimum(closedgecs[MAX_VERTEX_NUM]);//创建无向网voidCreateUDN(Graph&G){//采用数组(邻接矩阵)表示法,构造无向网Gfin>>>>;=(char*)malloc((+1)*sizeof(char));//需要开辟多一个空间存储'\0'//构造顶点向量for(inti=0;i<;i++)fin>>[i];[]='\0';//初始化邻接矩阵for(i=0;i<;++i)for(intj=0;j<;j++)[i][j]=INFINITY;chara,b;ints1,s2,w;for(i=0;i<;++i){fin>>a>>b>>w;//输入依附于弧的权值s1=LocateVex(G,a);//找到a和b在顶点向量中的位置s2=LocateVex(G,b);[s1][s2]=[s2][s1]=w;}}voidMiniSpanTree_PRIN(GraphG,charu){//用普里姆算法从第u个顶点出发构造网G的最小生成树T,输出T的各条边closedgecl[MAX_VERTEX_NUM];intk=LocateVex(G,u);//返回顶点u在图G中的位置for(intj=0;j<;++j){//辅助数组初始化if(j!=k){cl[j].adjvex=u;cl[j].lowcost=[k][j];}}cl[j].adjvex='\0';cl[j].lowcost=INFINITY;cl[k].adjvex=u;//初始,U={u}cl[k].lowcost=0;for(inti=0;i<;++i){k=minimum(cl);//求出T的下一个结点:第k顶点cout<<cl[k].adjvex<<"连接"<<[k]<<endl;//输出生成树的边cl[k].lowcost=0;//第k顶点并入U集for(j=0;j<;++j)if([k][j]<cl[j].lowcost){//新顶点并入U后重新选择最小边,将所有变化的

最小生成树和迷宫求解问题 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人文库旗舰店
  • 文件大小56 KB
  • 时间2020-03-26