- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构 自组织线性表 实验7报告
HUNAN UNIVERSITY
实验七最终报告
题 目: 自组织线性表
学生姓名
学生学号
专业班级
指导老师
完 成 日 期 2014年5月29日
需求分析
输入形式:
从文件中读入一组汉字集合,用自组织线性表保存,然后从文件中依次读入要查找的汉字。
不对非法输入做处理,假定输入的数据都合法。
输出形式:
输出要查找的汉字和查找结果及比较次数输出到DOS界面,并输出保存到文件中。
如果找到,返回比较的次数,如果没有找到,返回比较的次数。
程序功能:程序读入保存在文件中的汉字集合和要查找的汉字,并用需查找的汉字与汉字集合中汉字进行查找比较,并把查找到的汉字在顺序表中用转置法排序,输出查找结果。
测试数据
输入:
从文件中读入的汉字为:
好好学习,天天向上
需要查找的汉字为:
向我学习
输出:
向 查找成功!查找次数为:8
我 查找失败!查找次数为:9
学 查找成功!查找次数为:3
习 查找成功!查找次数为:4
二、概要设计
抽象数据类型定义
要求从文件中读入一组汉字集合,用自组织线性表保存。集合中必存在唯一一个第一元素和最后元素。除最后元素在外,元素间均有唯一的后继,除第一元素之外,元素间均有唯一的前驱,所以为数据元素建立一个线性数据关系。
线性表ADT
数据对象:D={ ai | ai , i=1,2,...,n, n≥0 }
数据关系:R1={ ai-1 ,ai |ai-1 ,aiD, i=2,...,n }
约定a1 为线性表头,an为线性表尾。
基本操作:
void initList(); //初始化变量
bool insert(); //从文件中读入汉字
int getLengthk(); //获得需查找汉字的长度
int getLengthj(); //获得汉字集合的长度
void printout(); //输出读入的记录到屏幕
算法的基本思想
设置一个计数器计数查找汉字的次数,每当遍历到线性表中的一个汉字时,计数器加一。
遍历线性表,依次用需查找的汉字与保存了读入汉字的自组织线性表中的每一个汉字作比较,如果相等那么查找到汉字,输出该汉字查找成功,输出查找次数。没有查找到则输出查找失败,输出查找的次数。
程序的流程
读入模块:从文件中读入一组汉字集合,并保存在自组织线性表中,读入要查找的汉字。
转置查找模块:依次根据需查找的汉字对汉字线性表遍历一次进行查找,若查找到该汉字,调用转置函数,将该汉字与前一个位置的汉字转置,然后继续查找下一个汉字。
输出模块:若查找到汉字,则输出到屏幕和文件中查找成功并显示查找次数;若没有查找到该汉字,输出到屏幕和文件中查找不成功并显示查找的次数。
各层次模块之间的调用关系
三、详细设计
物理数据类型
查找时,因为不需要用增加和删除操作,为了使空间效率较高,同时方便实现线性的数据关系,所以使用顺序表实现线性表。
汉字字符占两个字符型变量大小,用一个二维数组保存读入的汉字集合。
线性表的基本操作
因为汉字需要两个字符变量的大小,每行需要留出一个变量空间保存读入汉字后的结束符’/0’。
void initList() //数据初始化
{
char chinese[100][3]; //二维数组用于保存汉字集合
char s[20][3]; //保存需查找的汉字
i=0;j=0;k=0;
}
用两个txt文件分别存储汉字集合和要查找的汉字。“zizhuzhi.txt”保存汉字集合,“chazhao.txt”保存需查找的字。分别从文件中读入汉字,设置一个计数器,当没有访问到文件末尾时,每读入一个汉字将其保存在二维数组中,计数器加一。直到到达文件末尾,读入汉字结束,取计数器的值作为汉字集合的长度。计数器清零,同样的,读入需查找的汉字后,取计数器的值作为需查找汉字的数组长度。
void initList(){ //数据初始化
i=0;j=0;k=0;
}
void insert(){
char *p,temp[2];
p=temp;
fstream outfile1; //创建一个文件
fstream outfile2;
if(!ou
您可能关注的文档
最近下载
- 21程式与意蕴中国传统绘画课件高中美术人美版美术鉴赏(1).pptx
- 洗碗筷小学二年级劳动教育PPT课件.ppt VIP
- 简历模板,个人简历,精美简历模板,可编辑.docx VIP
- 2 我是什么【课件】2025-2026学年度统编版语文二年级上册.pptx
- 商业伦理与会计职业道德修炼.pptx VIP
- 统编版道德与法治一年级上册第14课《人人爱护公物》教学设计.docx VIP
- DB37_T 1654-2024食用菌床式栽培通用测产方法.docx VIP
- (研究生)商业伦理与会计职业道德ppt教学课件(完整版).pptx VIP
- 农村空心化现象的现状、原因及治理对策探究.docx VIP
- 四川新农村建设农房设计方案图集 川中南.docx VIP
文档评论(0)