数据结构-源程序

数据结构-源程序

ID:22287523

大小:149.00 KB

页数:12页

时间:2018-10-28

数据结构-源程序_第1页
数据结构-源程序_第2页
数据结构-源程序_第3页
数据结构-源程序_第4页
数据结构-源程序_第5页
资源描述:

《数据结构-源程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、#include#include#includeusingnamespacestd;constintMaxum=100000;classGraph{private:int*Adj;//保存邻接矩阵的一维数组j和k之间权值存储在Adj[j*Num+k]中intNum;//当前顶点数public:Graph();//构选函数"Graph();//析沟函数voidDijkstra(intstart);//单元最短路径算法};Graph::Graph()//构造闲数{ifstreaminput("input,txt",

2、ios::in);if(input==NULL)cout〈<〃openerror!〃;if(input!=NULL){input»Num;Adj=ncwint[Num*Num];if(Adj==NULL)exit(0);for(inti=0;i

3、路径算法{int*dist=newint[Num];//记彔最短权值int*prev=newint[Num];//记录路径int*s=newint[Num];//s为己经确定好的顶点域inti,j,k,m;//j记录dist的下标m=start;for(i=0;i〈Num;i++)//初始化dist[i]=Adj[m*Nura+i];prev[i]=m;//记录源点到顶点的最短路径上,本顶点的前一顶点s[i]=O;//顶点i不在s域中}prev[ni]=-1;//ni是源点前一顶点不存在s[m]=l;//源点在s域中for(i=0;i<Num-l;i++)//差N

4、um-1个顶点需处理{intmin;//最小权for(k=0;k<Num;k++)if(!s[k])break;//找到仍在顶点-S域中的第一个顶点min=dist[k];j=k;for(k=j+l;k<Nura;k++)//找最小权值的边if(!s[k]&&dist[k]〈min){min=dist[k];j=k;}s[j]=l;//放进s域屮for(k=0;k<Num;k++)//更新最短路径值if(!s[k]&&dist[j]+Adj[j*Num+k]<dist[k]){dist[k]=dist[j]+Adj[j*Num+k];//记录最短路径prev[k]

5、=j;//记录路径即本顶点k的前驱顶点j}}ofstreamoutput("output,txt",ios::out);if(output==NULL)exit(0);for(k=0;k<Num;k++)//输出打印if(k!=m){if(dist[k]>=MaxNum){output<〈〃源点〃〈<start〈〈〃到顶点〃<〈k〈〈〃不存在相通的路径〃〈<endl〈<endl;}else{output〈〈〃源点〃<〈start<〈〃到顶点〃<<k〈〈〃的最小花费为:"〈<dist[k]〈<endl;//输出最小权值j=k;stack〈int〉Q;output<〈

6、〃路径为:〃;while(j!=m){Q.push(j);j=prev[j];}//路径存入栈中Q.push(j);while(Q.size()!=1){output«Q.top()〈<"~〉’’;Q.pop();}//输出路径output«Q.top()«endl«endl;Q.pop();//最后一个元素出栈}}}intmain(){GraphG;cout〈〈〃请输入起点:〃〈

7、ineN7^defineI999graph[N][N]二{{I,4,5,8,T,T,T},{I,I,I,6,6,I,I},{I,I,I,5,I,7,I},{I,I,I,I,8,9,9},{I,I,I,I,I,T,5},{I,I,I,I,I,I,4},{I,I,I,1,I,1,1}/*顶点数目*//*表示无穷大*//*图的邻接矩阵*//*存放拓扑序列*//*拓扑排序蛾数*/A主函数*//*最长最短距离*//*记录路径数据*/intList[N];intTopologicalOrder0;voidmain(){inti,j,k,1;intee[N],el[N];int

8、path_

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。