网站大量收购闲置独家精品文档,联系QQ:2885784924

实验一实验报告_基本算法_杨涛_20133019.doc

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一实验报告_基本算法_杨涛_20133019实验一实验报告_基本算法_杨涛_20133019

实验一 数据结构基本算法演示程序实习报告 班级:信1301-2 姓名:杨涛 学号一.任务说明 小组成员:杨涛 刘伟 张晓菲 朱建颖(组长) 杨涛任务包括实验四,八,十二,十六 张晓菲任务包括实验一,五,九,十三 朱建颖任务包括实验二,六,十,十四 刘伟任务包括实验三,七,十一,十五 1.我的任务实验四,实验八,实验十二,实验十六,三天时间完成 2.实验四 Prim算法,输入:无向图(顶点序列,边序列),功能要求:输出最小生成树的各组成边及最小生成树的权值。 实验八 关键路径算法,输入:有向图(顶点序列,有向边序列),起始顶点,功能要求:能判断是否为AOE网;输出各关键活动或输出关键路径(包括关键路径的长度) 实验十二 快速排序,输入:待排序数据序列,功能要求:输出每步的枢轴选择和排序情况;希望能进行排序的选择(从大到小或从小到大) 实验十六 四则表达式运算,输入:中缀表达式 功能要求:输出后缀表达式和计算结果。 二.概要设计 1.抽象数据类型: 实验四:建立图的数据结构类型如下: typedef struct{ int vexs[MAX]; //顶点信息集合 int arcs[MAX][MAX]; //各边的权值 int vexnum; //顶点数 int arcnum; //边数 }MGraph; //图类型 建立辅助数组结构类型如下: struct closed{ int adjvex; //依附于最小权值边在顶点集合U中的顶点 int lowcost; //存储最小边的权值 }; closed closedge[MAX]; 2.主程序流程及各程序模块的层次关系: j不等于I j等于I 小于等于 大于 .求出最小代价的边的算法流程:求出最小代价的边的算法流程: 小于 大于等于 有一个条件不满足 都是肯定的回答 是 否 对于上述流程图可简单解释如下,首先通过对其它顶点依次判断,找出相连的顶点,然后得到顶点序号,再通过for循环,进行循环判断,找出边权值最小的,并赋值进入closedge[]中。 重新调整各顶点中的顶点域和权值域的流程: 有一个不满足 答案是肯定的 是的 否 ? ? 普利姆算法的总流程: 是 否 图3-7. 普利姆算法的总流程图 ? 主函数的流程: 五.详细设计和编码 图的建立: MGraph CreateMarph(MGraph G){ int v1,v2,weight,i,j,k; printf(●●请输入无向图的顶点数和边数:); scanf(%d%d,G.vexnum,G.arcnum); for(i=0;iG.vexnum;i++){ //初始化邻接矩阵 for(j=0;jG.vexnum;j++){ G.arcs[i][j]=0; }} for(i=0;iG.vexnum;i++){ printf(第%d个顶点的序号:,i+1); scanf(%d,G.vexs[i]); } printf(\n---------------请你确定各条弧的信息--------------\n); for(k=0;kG.arcnum;k++) {printf(●●请输入第%d弧的两个起始顶点和其权值为:,k+1);//输入一条边及依附的顶点及权值 for(; ;){ scanf(%d%d%d,v1,v2,weight); if((v10v1=G.vexnum)(v20v2=G.vexnum)) break; else printf(输入有误,不存在该顶点,请重新输入^_^\n); } i=LocateVex(G.vexs,v1); //找到两个结点在邻接矩阵中的位置 j=LocateVex(G.vexs,v2); G.arcs[i][j]=weight; //边的权值 G.arcs[j][i]=G.arcs[i][j]; //置(v1,v2)成(v2,v1) } printf(-----------------------------------------------\n); return G; } 本子函数是

文档评论(0)

ganqludp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档