




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE4西南大学实验报告《算法设计与分析》课程2014-2015学年度第1学期专业年级计算机科学与技术姓名罗江涛学号222012321210140任课教师何国斌实验教师何国斌上机地点25教西南大学计算机与信息科学学院2014年9月
《算法设计与分析》课程实验报告(一)实验题目动态规划实验时间2014/9一、实验目的及要求了解动态规划二、实验内容、过程和结果(实验主要内容的介绍、主要的操作步骤、程序代码和测试数据及实验结果)多段图问题#include<stdio.h>#include<conio.h>#include<malloc.h>#defineMAX_VERTEX_NUM50typedefstructArcNode{ intadjvex;//该弧所指向的顶点的位置 intvalue;//该结点与邻接结点间的代价 structArcNode*nextarc;//指向下一条弧的指针}ArcNode,*node;typedefstructVNode{ intdata;//顶点信息ArcNode*firstArc;//指向第一条依附该顶点的弧的指针}VNode,AdjList[MAX_VERTEX_NUM];typedefstructGraph{ AdjListvertices; intvexnum,arcnum;//图的当前顶点数和弧数}*ALGraph;intbuild_adList(ALGraphG,intn,inta){//建立邻接表 intv,m,i,t,h; nodep,q; if(n<0)returnprintf("ERROR"); G->vexnum=n;//图的顶点数 if(a<0)returnprintf("ERROR"); G->arcnum=a;//图的弧数 for(m=0;m<n;m++) { G->vertices[m].data=m; G->vertices[m].firstArc=NULL; } for(m=1;m<=a;m++) { i=1; printf("输入第%d条弧:",m); scanf("%d,%d,%d",&t,&h,&v); p=(ArcNode*)malloc(sizeof(ArcNode)); p->adjvex=h; p->value=v; p->nextarc=NULL; while(G->vertices[i].data!=t)i++;//转到下一个结点 if(!G->vertices[i].firstArc)//终点 G->vertices[i].firstArc=p; else {//若当前结点有后继节点则后移 for(q=G->vertices[i].firstArc;q->nextarc;q=q->nextarc); q->nextarc=p;//新开辟结点 } } returnv;}voidprint_Graph(ALGraphG){//打印邻接表 ArcNode*p=(ArcNode*)malloc(sizeof(ArcNode)); inti; for(i=1;i<G->vexnum;i++) { p=G->vertices[i].firstArc; printf("[%d]",i); while(p) { printf("->%d,%d",p->adjvex,p->value);//第i个结点的邻接结点信息 p=p->nextarc; } printf("\n"); }}voidfgraph(ALGraphG,intk,intn){//多段图ALGraphG,n为结点数,k为图的段数//输入是按段的顺序给结点编号 intcost[100]; intd[100]; intpath[100]; intj,r,i,min,w,value; nodep; cost[n]=0; for(j=n-1;j>=1;j--)//向前处理结点 { p=G->vertices[j].firstArc; min=p->value+cost[p->adjvex];//初始化路径最小代价 r=p->adjvex; value=p->value; while(p!=NULL) {//r是一个的这样的结点,权值c(j,r)+cost[r]取最小值 if((p->value+cost[p->adjvex])<min) { min=p->value+cost[p->adjvex];//p->value=c(j,r) r=p->adjvex; value=p->value; } p=p->nextarc; } cost[j]=value+cost[r];//当前节点的代价值 d[j]=r;//决策阶段,各结点到终点最小代价路径上前方顶点的编号 } path[1]=1;path[k]=n; for(i=2;i<=k-1;i++)//找出最小代价路径上的结点 path[i]=d[path[i-1]]; printf("最小成本为:%d\n",cost[1]); printf("最小成本路径为:"); for(w=1;w<=k;w++) printf("%d->",path[w]);}voidmain(){ ALGraphg;intn,a,k; g=(ALGraph)malloc(sizeof(ALGraph));printf("请输入多段图节点数目:");scanf("%d",&n); printf("请输入多段图边的数目:");scanf("%d",&a); printf("请输入多段图的段数:"); scanf("%d",&k);printf("输入多段图的弧的信息(弧头,弧尾,权值)\n"); build_adList(g,n,a);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电商设计中的文案撰写技巧试题及答案
- 基因与性状的联动机制试题及答案
- 2025年室外环境清洁电器项目合作计划书
- 遗传学的基本原理试题及答案
- 和考官对话CPMM试题及答案
- CPSM价值评估试题及答案分享
- 基因表达调控的基本机制试题及答案
- 体温监测防控系统课件
- 2025年冷墩钢合作协议书
- 2024国际物流师的考前准备事项与试题及答案
- 提高护理文书书写质量品管圈课件
- 中国特色社会主义理论与实践研究知识点整理及思考题答案
- 创意知名画家达芬奇个人生平介绍PPT
- 篮球-行进间单手肩上投篮教案
- 临检基础小知识点整理
- T∕CATSI 08001-2020 小产区产品认定通则
- 《汉服》PPT课件(完整版)
- R-朗格汉斯细胞组织细胞增生症
- 高中毕业生登记表完整A4版
- GB 8408-2018 大型游乐设施安全规范(高清版)
- 植物纤维化学答案(华工)
评论
0/150
提交评论