动态规划-多段图-最小花费通路算法-C语言.doc

动态规划-多段图-最小花费通路算法-C语言.doc

ID:52684350

大小:38.00 KB

页数:5页

时间:2020-03-29

动态规划-多段图-最小花费通路算法-C语言.doc_第1页
动态规划-多段图-最小花费通路算法-C语言.doc_第2页
动态规划-多段图-最小花费通路算法-C语言.doc_第3页
动态规划-多段图-最小花费通路算法-C语言.doc_第4页
动态规划-多段图-最小花费通路算法-C语言.doc_第5页
资源描述:

《动态规划-多段图-最小花费通路算法-C语言.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、动态规划找出多段图的最小花费通路算法(C语言)//算法:#include#include#defineMAX50#defineMAX_LEN100/*定义顶点之间最大花费(假设最大花费为100)*///结构体定义typedefstructedgenode{/*定义边表结点结构体*/intadjvertex;/*邻接点编号*/intlen;/*该结点与父结点之间的花费*/structedgenode*next;/*指向下一个邻接点*/}EdgeNode;typedefstructvertexnode{/*定义顶点结点结构体*/E

2、dgeNode*firstedge;/*边表头指针*/}VertexNode;typedefstruct{/*定义邻接表结构体*/VertexNodeadjlist[MAX];/*邻接表*/intvertexNum;/*顶点数*/intedgeNum;/*边数*/}ALGraph;//函数声明ALGraph*CreateALGraph(intvertexNum,intedgeNum);voidMultistageGraph(ALGraph*G,intn,introute[],int*minCost);//主函数intmain(){ALGraph*G=NULL;in

3、tvertexNum,edgeNum;/*顶点数和边数*/int*route;/*从源点到收点的最短路径上的顶点编号*/intminCost;/*最短路径的最小费用*/inti;printf("请输入顶点数和边数:");scanf("%d,%d",&vertexNum,&edgeNum);//初始化GG=CreateALGraph(vertexNum,edgeNum);if(!G){return0;}//初始化route数组route=(int*)malloc(sizeof(int)*vertexNum);MultistageGraph(G,vertexNum

4、,route,&minCost);//输出最小花费路径及最小花费printf("最小花费路径是:");for(i=0;i",route[i]);if(route[i]==(vertexNum-1)){printf("bbbb");break;}}printf("最小花费是:%d",minCost);return0;}/***********************************************************函数名称:GreateALGraph函数功能:初

5、始化有向图的邻接表输入:顶点数ertexNum,边数edgeNum输出:指向已初始化完毕的有向图的邻接表指针***********************************************************/ALGraph*CreateALGraph(intvertexNum,intedgeNum){ALGraph*G=NULL;inti,j,u,v,info;G=(ALGraph*)malloc(sizeof(ALGraph));if(G){G->vertexNum=vertexNum;G->edgeNum=edgeNum;for(i=0;i

6、adjlist[i].firstedge=NULL;}//给边表结点分配内存空间printf("请输入分段图中各相邻结点的编号及其权值:");for(j=0;jnext=NULL;//输入相邻结点的编号及其边上的权值scanf("%d,%d,%d",&u,&v,&info);if(pnode){pnode->next=G->adjlist[u]

7、.firstedge;G->adjlist[u].firstedge=pnode;pnode->adjvertex=v;pnode->len=info;}else{returnNULL;}}}returnG;}/***********************************************************函数名称:MultistageGraph函数功能:多段图中利用动态规划找出源点到收点的最小花费通路输入:指向有向图的邻接表指针G,结点个数n,保存最小花费通路结点的数组route,保存最小花费minCost输出:最小花费通路结点的数组rou

8、te,最小

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

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

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