急求两点间最短路径的代码,其中一点固定,请高手把能C 运行的代码发给我,悬赏50分,如果好再加分

[复制链接]
查看11 | 回复2 | 2011-9-26 12:17:04 | 显示全部楼层 |阅读模式
回复

使用道具 举报

千问 | 2011-9-26 12:17:04 | 显示全部楼层
dijkstra单源最短路,要改改的#includefstream#includecstringusingnamespacestd;constintMaxNum=1000000;//边权最大值intn;//节点数目intdist[501];//到节点1的最短路径值boolstate[501];//节点被搜索过状态指示intdata[501][501];//邻接矩阵//查找权值最小的节点intfindmin(){intminnode=0,min=MaxNum;for(inti=1;i=n;i)if((distmin)minnode=i;}returnminnode;}intmain(){ifstreamin(\"dijkstra.in\");ofstreamout(\"dijkstra.out\");memset(state,0,sizeof(state));inn;for(intp=1;p=n;p)for(intq=1;q=n;q){indata[p][q];if(data[p][q]==0)data[p][q]=MaxNum;}//初始化for(inti=1;i=n;i)dist=data[1];state[1]=true;intdone=1;while(donen){intnode=findmin();if(node!=0){done;//找到的点的数目加1state[node]=true;//标记已经找到了从节点1到节点node的最短路径for(inti=1;i=n;i)//更新还没有找到的点的路径值if((distdist[node]data[node])}elsebreak;}for(intk=1;k=n;k){if(dist[k]==MaxNum)out-1;elseoutdist[k];if(k==n)outendl;elseout\"\";}in.close();out.close();return0;}追问大哥,可以给个能运行的么?这个我不会改啊
回复

使用道具 举报

千问 | 2011-9-26 12:17:04 | 显示全部楼层
这个只是输入方式是文本而已埃。你要手动输入的改下文件流那些就好了。。其他都是直接可以运行的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行