数据结构_课程设计报告(城市地铁设计).docVIP

数据结构_课程设计报告(城市地铁设计).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构_课程设计报告(城市地铁设计)

数据结构课程设计报告 学院:计算机科学与工程 专业:计算机科学与技术 班级:09级班 学号: 姓名: 指导老师: 时间: 2010年12月 一、课程设计题目: 1、哈夫曼编码的实现 2、城市辖区地铁线路设计 3、综合排序算法的比较 二、小组成员: 三、题目要求: 1.哈夫曼编码的实现 (1)打开若干篇英文文章,统计该文章中每个字符出现的次数,进一步统一各字符出现的概率。 (2)针对上述统计结果,对各字符实现哈夫曼编码 (3)对任意文章,用哈夫曼编码对其进行编码 (4)对任意文章,对收到的电文进行解码 2.某城市要在其各个辖区之间修建地铁来加快经济发展,但由于建设地铁的费用昂贵,因此需要合理安排地铁的建设路线。 (1)从包含各辖区的地图文件中读取辖区的名称和各辖区的直接距离 (2)根据上述读入的信息,给出一种铺设地铁线路的解决方案。使乘客可以沿地铁到达各个辖区,并使总的建设费用最小。 (3)输出应该建设的地铁路线及所需要建设的总里程信息。 3.综合排序算法的比较 各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或大概的执行时间。试通过随机的数据比较各算法的关键字比较次数和关键字移动的次数。 (1)对以下各种常用的内部排序算法进行比较: 直接插入排序,折半插入排序,二路归并排序,希尔排序,冒泡排序,快速排序简单选择排序,堆排序,归并排序,基数排序。 (2)待排 序的表长不少于100,要求采用随机数。 (3)至少要用5组不同的输入数据做比较:比较的次数为有关键字参加的比较次数和关键字移动的次数 (4)改变数据量的大小,观察统计数据的变化情况。 (5)对试验统计数据进行分析。对各类排序算法进行综合评价。 四、项目安排: 1、小组内分工合作 分工:负责哈夫曼编码的实现,负责城市辖区地铁线路设计,负责综合排序算法的比较。 合作:组内,组外进行交流,组长帮助解决组员的在项目过程中的困难,并控制进度。 五、完成自己的任务: 任务:城市辖区地铁线路设计 实现方案 创建城市辖区图表信息 创建城市辖区图表信息 将信息写入文件 从文件读取信息 最优路径的选择 输出最优路径的相关信息 在整个编程中,我是通过手动输入的方式把数据写到文件中,而不是直接从文件中读取,这个不是题目要求的,但是我想当拿到数据之后都要对数据进行处理,干脆直接手动输入得出结果。 在这个代码中,最重要的是铁路线路的最优设计。在这个代码的实现中,我用了Kruscal的想法,然后通过函数的嵌套实现最优路径的选取的。 2.代码的实现 #includestdio.h #includemalloc.h #includestdlib.h #include iostream.h #include string.h #define MAXSIZE 100 typedef struct link { int connect; int fee;//费用 struct link *next; }edgenode; typedef struct node { char name[10];//名称 edgenode *link; }city; typedef struct { city vex[MAXSIZE]; int city_n,city_e; }city_graph; city_graph ga; int total_fee=0;//记录总费用 void creat(city_graph *ga)//创建辖区总信息 { int i=0 ,a,b; edgenode *q; edgenode *p; printf(请输入城市辖区个数: );//城市中辖区的个数 scanf(%d,ga-city_n); printf(请输入城市辖区间路径的总个数: );//辖区间的路径 scanf(%d,ga-city_e); for(i=1;iga-city_n+1;i++)//建立城市辖区信息表 { printf(请输入第%d个城市辖区名称: ,i); scanf(%s,ga-vex[i].name); ga-vex[i].link=NULL; } for(i=0;iga-city_e;i++)//辖区联系表(头插法) { printf(请输入第%d组两个相邻辖区的编号,i+1);//还没有处理数据,比如输入的是超出规定范围的数据 p=(edgenode *)malloc(sizeof (edgenode )); q=(edgenode *)malloc(sizeof (edgenode )); scan

您可能关注的文档

文档评论(0)

beoes + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档