c语言求解多段图〔向前处理法〕

#include#include#define Infinity 1000 //无穷大#define Max 45#define null 0

typedef struct ArcNode //边结点{int adjvex; //边的终点int weigh; //边的权struct ArcNode *nextarc; //下一条邻接边}ArcNode;

typedef struct VNode //顶结点{char data; //顶点ArcNode *firstarc; //第一条邻接边}VNode,AdjList[Max];

typedef struct //图{int vexnum,arcnum; //顶点数,边数AdjList 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;i<=G->vexnum;i++) {fscanf(fp,"%c",&G->vertices[i].data); //从文件中读取顶点名称G->vertices[i].firstarc=NULL; //将第一条邻接边的地址赋为空}for(i=1;i<=(*G).arcnum;i++) {p=(ArcNode*)malloc(sizeof(ArcNode));fscanf(fp,"%d %d %d",&j,&p->adjvex,&p->weigh); p->nextarc=G->vertices[j].firstarc; //使用插表头的方法插入邻接边G->vertices[j].firstarc=p;}}

void main(){int i,j;int cost[13],d[13],q[6];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->vertices[i].firstarc; printf("%d-->%d",i,p->adjvex);while(p->nextarc!=null){printf(" %d",p->nextarc->adjvex);p=p->nextarc;}printf("\n");} printf("12\n");

//向后处理法cost[12]=0;for(j=11;j>=1;j--){p=G->vertices[j].firstarc;min=p->weigh+cost[p->adjvex];cost[j]=min;d[j]=p->adjvex;while (p->nextarc!=null){b=p->nextarc->weigh+cost[p->nextarc->adjvex];if(bnextarc->adjvex;}p=p->nextarc;}} //找一条最小路径q[1]=1;q[5]=12;for(j=2;j<=4;j++)q[j]=d[q[j-1]];printf("a shortest way is:\n");for(i=1;i<=4;i++)printf("%d-->",q[i]);printf("%d",q[i]);

}

在c语言中nextarc是什么意思,c语言求解多段图〔向前处理法〕.docx相关推荐

  1. c语言里的%p的作用,C语言中geiwei=m%10什么意思,求解!

    C语言中geiwei=m%10什么意思,求解!以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C语言中geiwei=m% ...

  2. C语言中static的作用及C语言中使用静态函数有何好处

    转自:http://www.jb51.net/article/74830.htm 在C语言中,static的作用有三条:一是隐藏功能,二是保持持久性功能,三是默认初始化为0. 在C语言中,static ...

  3. c语言中 printf(quot;nquot;),关于C语言 printf(quot;%d\nquot;,printf(quot;%dquot;,printf(quot;%dquot;...

    luokaiwei19824级被浏览104次2013.10.11 检举 #include int main(){ int i=43; printf("%d\n",printf(&q ...

  4. 在众多编程语言中,你可知哪种语言的安全性更高,安全漏洞最少?

    编程语言之争,一直以来是开发者社区的热议问题,因为开发者喜欢证明自己所使用的编程语言占据主导地位,尤其是安全性,只不过讨论的过程往往都伴随着双方的愤怒,最后不了了之.那么,你可知在众多热门编程语言中, ...

  5. c语言中const的作用面试,C语言const关键字作用

    C语言中const代表着"不可变",基本和常量一样不可修改,但是应用场景不一样. 一.应用在变量 const char a='A'; a='B';  //错误,变量a的值不可以修改 ...

  6. c语言中switch结构,switch结构c语言

    C语言中switch结构的使用 用switch结构编制程序,输入1个学生的C语言课程考试成绩(百分制整形数因为case后面不能接范围,也就是说case后面是一个确实固定的常量.用下面的方法比较好, # ...

  7. c语言中break语句的功能,C语言break语句

    C语言中的break语句用于中断循环的执行(while,do while和for)和switch case. 在内循环的情况下,仅终止内循环的控制. C语言中有两种使用break关键字: 与switc ...

  8. c语言中int 3.6 =,(C语言中的常量)乐创DIY C语言讲义​——3.6节

    3.6 常量 常量,顾名思义就是在程序执行期间不会改变的固定值.在C语言中,常量的主要作用有两个,其一为给变量赋值,其二为与变量比较,作为判断条件. 在C语言程序中的常量有四大类,分别是整数型常量,浮 ...

  9. Go语言中的JSON处理 【Go语言圣经笔记】

    JSON JavaScript对象简谱(JSON, Java Script Object Notation)是一种用于发送和接收结构化信息的标准协议.在类似的协议中,JSON并不是唯一的一个标准协议. ...

最新文章

  1. 走过求职的季节(2)-十月 龙卷风
  2. jquery text html width heigth的用法
  3. ajax formdata 获取表单数据,node处理表单文件,获取formdata的数据
  4. php redis linsert,LINSERT命令_视频讲解_用法示例-redis编程词典-php中文网
  5. linux系统程序设计
  6. 【Android】ActivityManager结构图
  7. 在标记的HREF属性中javascript:alert(this.innerHTML)会怎么样?
  8. 鸿蒙os界面鲁大师,鲁大师鸿蒙版下载-鲁大师 鸿蒙版v10.4.5-PC6鸿蒙网
  9. webform计算某几列结果_工业CAE案例实战精选|脱硫吸收塔工艺仿真计算系统
  10. 从文本界面安装RHEL5操作系统详解
  11. c++ opencv 识别车牌_python利用百度云接口实现车牌识别
  12. 83. 验证码(1)
  13. 远程计算机维修,电脑坏了不用愁,向日葵电脑远程维修省时又省力
  14. 第一章 Python基础
  15. 企业数据资产管理:数据资产目录应该如何规划
  16. Linux环境下安装MySQL(源码安装)
  17. dellr710服务器(DellR710服务器做完raid安装系统找不到磁盘)
  18. Java web程序设计(笔记无参考价值)
  19. BPM软件_财务报销流程管理解决方案_K2工作流引擎
  20. smtp java 抓包_[Wireshark]_003_电子邮件抓包分析

热门文章

  1. eclipse远程调试jar包
  2. spring配置文件application.properties配置项及含义
  3. python之解析 yaml配置文件时TypeError: string indices must be integers
  4. 本地生活O2O商机的平台战略分析
  5. append() 函数--R语言
  6. MFC GDI图形的那些事
  7. ps负空间合成海报详细步骤,负空间合成海报怎么做?
  8. Pock 0.8.1 中文版 (在TouchBar中显示Dock栏图标)
  9. Pocket|战略投资Web3生态的价值将逐步体现
  10. 企业微信把人移出会有显示吗?如何移出?