数据结构-课程设计题-2011.docVIP

  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文档。上传文档
查看更多
《数据结构》课程设计 一、题目的选择方法 根据学号进行对应题目的选择,即学号的后2位除以17取余数,所得余数即为该同学所选题号。 二、《数据结构》课程设计可供选择的题目 1、 Huffman编码的应用 创建一个文本文件,通过统计该文件中各字符出现的频率,对各字符进行Huffman编码,(1)能够实现将该文件转换成Huffman编码文件存储(压缩),(2)能够实现将Huffman编码文件还原成原文件(解压)。 2、链表的应用 以有序的单链表结构来描述超市家电部的库存模型。当有提货或进货时需要对该链表及时进行维护。每个工作日结束之后,将该链表中的数据以文件形式保存,每日开始营业之前,需将以文件形式保存的数据恢复成链表结构的有序表。链表结点的数据域包括家电名称、品牌、单价和数量,以单价的升序体现链表的有序性。程序功能包括:初始化、创建表、插入、删除、更新数据,查询及链表数据与文件之间的转换等。 3、Hash表的应用 扫描一个C语言源程序,用Hash表存储该程序中出现的关键字,并统计该程序中的关键字出现的频率。 4、图的应用 N(N10)个居民之间需要铺设煤气管道。假设任意两个居民之间都可以铺设煤气管道,但代价不同。事先将任意两个居民之间铺设煤气管道的代价存入磁盘文件中。设计一个最佳方案使得这N个居民之间铺设煤气管道所需代价最少。 5、模式匹配算法的应用 利用字符串匹配的KMP算法,实现对文本文件的查找与替换功能。 6、Joseph环 约瑟夫环(Joseph)问题的一种描述是:编号为1、2、3……n的n个人按照顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按照顺时针的方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他的顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。试设计一个程序求出出列顺序。 [基本要求] 利用顺序表、单向循环链表两种存储结构模拟此过程,按照出列的顺序依次输出每个人的编号。 [测试数据] m的初值为20,n=7,7个人的密码依次为:3、1、7、2、4、8、4,首先m值为6(正确的出列顺序应为6、1、4、7、2、3、5)。 [实现提示] 程序运行后,首先要求用户指定初始报数上限值,然后读取个人的密码。可设n≤30。此题所用的循环链表中不需要“头结点”,请注意空表和非空表的界限。 7、长整数四则运算 [问题描述] 设计一个实现任意长的整数进行加法运算的演示程序 [基本要求] 利用双向循环链表实现长整数的存储,每个节点包含一个整型变量。任何整型变量的范围是-(215-1)~215-1,输入输出形式:按照中国对于长整数的表示习惯,每四位一组,组间用逗号分开。 [测试数据] (1)0;0;应输入“0” (2)-2345,6789;-7654,3211;应输出”-1,0000,0000” (3)1,0001,0001;-1,0001,0001;应输出0。 [实现提示] 每个结点中可以存放的最大整数为215-1=32767,才能保证两数相加不会溢出。但若这样存放,即相当于按32767进制数存放,在十进制数与32767进制数之间的转换十分不便。故可以在每个节点中仅存放十进制数的4位,即不超过9999的非负整数,整个链表表示为万进制数。 可以利用头节点的数据域的符号代表长整数的符号。相加过程中不要破坏两个操作数链表。不能给长整数位数规定上限。 8、栈的应用一 表达式计算是实现程序设计语言的基本问题之一。也是栈的应用的一个典型例子。设计一个程序,演示用算符优先法或转换成后缀表达式方法对算术表达式进行求值的过程。 [基本要求] 以字符序列的形式从终端输入语法正确的、不含变量的整数表达式。利用算符优先关系,或中缀表达式向后缀表达式转换的方法,实现对算术四则混合运算表达式的求值,并仿照教科书和课件中的例子演示求值中运算符栈、运算数栈、输入字符和主要操作变化的过程。 [测试数据] 3*(7-2) 8;1+2+3+4;88-1*5;1024/4*8;(6+2*(3+6*(6+6))) 9、二分法查找的应用 分块查找又称为索引顺序查找,是顺序查找的一种改进方法。除了表自身之外,尚需建立一个“索引表”,为每一个子表建立一个索引项,其中包括两项内容,关键字(子表内的最大关键字)项和指针项(子表中第一个记录在表中的位置)。索引表按关键字排序,子表分块有序,查找时先确定待查记录所在的块,然后在块内查找。由于索引项是按照关键字排序的,所以在索引表中的查找可以采用二分查找方法。 [基本要求] 将学生按照班级进行分类,同一班级的学生记录在一个子表中。 索引表中存放班级的名称,并按照名称进行排序。 一个班级的学生

文档评论(0)

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

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

1亿VIP精品文档

相关文档