c语言求解多段图(向前处理法)

上传人:平*** 文档编号:12689526 上传时间:2017-10-20 格式:DOCX 页数:3 大小:13.06KB
返回 下载 相关 举报
c语言求解多段图(向前处理法)_第1页
第1页 / 共3页
c语言求解多段图(向前处理法)_第2页
第2页 / 共3页
c语言求解多段图(向前处理法)_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《c语言求解多段图(向前处理法)》由会员分享,可在线阅读,更多相关《c语言求解多段图(向前处理法)(3页珍藏版)》请在金锄头文库上搜索。

1、#include#include#define Infinity 1000 /无穷大#define Max 45#define null 0typedef struct ArcNode /边结点int adjvex; /边的终点int weigh; /边的权struct ArcNode *nextarc; /下一条邻接边ArcNode;typedef struct VNode /顶结点char data; /顶点ArcNode *firstarc; /第一条邻接边VNode,AdjListMax;typedef struct /图int vexnum,arcnum; /顶点数,边数AdjLis

2、t vertices; /顶点集合表Graph;void CreatGraph(Graph *G) /建立有向图int i,j;FILE *fp;ArcNode *p;if(fp=fopen(Init.dat,r)=NULL) printf(Cannot open the file!n);exit(0);fscanf(fp,%d %d,&G-vexnum,&G-arcnum); /从文件中读取顶点数和边数for(i=1;ivexnum;i+) fscanf(fp,%c,&G-verticesi.data); /从文件中读取顶点名称G-verticesi.firstarc=NULL; /将第一条

3、邻接边的地址赋为空for(i=1;iadjvex,&p-weigh); p-nextarc=G-verticesj.firstarc; /使用插表头的方法插入邻接边G-verticesj.firstarc=p;void main()int i,j;int cost13,d13,q6;int b,min;Graph *G;G=(Graph*)malloc(sizeof(Graph);ArcNode *p;CreatGraph(G);printf(The Graph:n); /输出有向图for(i=1;ivexnum;i+) p=G-verticesi.firstarc;printf(%d%d,i

4、,p-adjvex);while(p-nextarc!=null)printf( %d,p-nextarc-adjvex);p=p-nextarc;printf(n);printf(12n);/向后处理法cost12=0;for(j=11;j=1;j-)p=G-verticesj.firstarc;min=p-weigh+costp-adjvex;costj=min;dj=p-adjvex;while (p-nextarc!=null)b=p-nextarc-weigh+costp-nextarc-adjvex;if(bnextarc-adjvex;p=p-nextarc;/找一条最小路径q1=1;q5=12;for(j=2;j,qi);printf(%d,qi);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号