实验七自组织线性表

上传人:le****9 文档编号:122074922 上传时间:2020-02-29 格式:DOC 页数:4 大小:326KB
返回 下载 相关 举报
实验七自组织线性表_第1页
第1页 / 共4页
实验七自组织线性表_第2页
第2页 / 共4页
实验七自组织线性表_第3页
第3页 / 共4页
实验七自组织线性表_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《实验七自组织线性表》由会员分享,可在线阅读,更多相关《实验七自组织线性表(4页珍藏版)》请在金锄头文库上搜索。

1、HUNAN UNIVERSITY课程预习报告题 目: 自组织线性表 学生姓名 学生学号 2012080102 专业班级 计算机科学与技术班 完 成 日 期 4 一、需求分析自组织线性表根据估算的访问频率排列记录,先放置请求频率最高的记录,接下来是请求频率次高的记录,依此类推。自组织线性表根据实际的记录访问模式在线性表中修改记录顺序。自组织线性表使用启发式规则决定如何重新排列线性表。转置方法的基本原理是,在一次查找过程中,一旦找到一个记录,则将它与前一个位置的记录交换位置。这样,随着时间的推移,经常访问的记录将移动到线性表的前端,而曾经频繁使用但以后不再访问的记录将逐渐退至线性表的后面。尽管一般

2、情况下自组织线性表的效率可能没有查找数和已排序的线性表那么好,但它也有自身的优势。它可以不必对线性表进行排序,新记录的插入代价很小;同时也比查找树更容易实现,且无需额外的存储空间。程序能达到的功能:(1) 从文件中读入一组汉字集合,用自组织线性表保存。(2) 在查询时,采用转置法调整自组织线性表的内容。(3) 从文件中依次读入需查询的汉字,把查询结果保存在文件中(如找到,返回比较的次数,如果没有找到,返回比较的次数) 二、概要设计抽象数据类型由于每个汉字都有唯一的第一元素和最后元素,每个元素都有唯一的前驱和唯一的后继所以我们用线性表来存储汉字,且汉字是占两个字符位置,因此我们用二维数组来存储汉

3、字。ADT Array_2 D=ai,j|ai,j汉字字符,0ib1-1, 0jb2-1 R=R1,R2 R1=|ai,j,ai+1,j D,0ib1-2,0jb2-1 R2=|ai,j,ai,j+1 D,0ib1-1,0jb2-2基本操作P:InitArray(&A,b1,b2); /初始化二维数组DestroyArray (&A); /删除这个二维数组ValueArray (A, &e,index1,index2);AssignArray (&A, e, index1,index2); ADT Array_2算法的基本思想将文件中的汉字读入存储数组,将需要查找的汉字输入查找数组中,然后将查

4、找数组中的汉字依次与存储数组中的汉字进行比较,若找到该汉字则进行转置操作,交换该汉字与前一个汉字的位置和比较次数,若没有找到则输出存储数组的长度,循环此操作一直到查找数组中的汉字全部查找完毕。程序流程程序主要由三个步骤组成:输入模块:读入两组汉字。处理模块:计算两组汉字的个数,进行查找,互换操作。输出模块:将查找结果输出。三、详细设计实现概要设计中的数据类型倒置函数,查找到一次后,与前一个位置的数互换bool flag;void Inverse(char a2,int i,int j) char temp=ai0; ai0=aj0; aj0=temp; temp=ai1; ai1=aj1; a

5、j1=temp; 查找汉字int search(char a2,int size,char c2) flag=0; int i; for( i=0;i0) Inverse(a,i,i-1); return i+1; else return size; /如果找不到则查找次数为以保存汉字的个数 主函数:int main() int i,size1,size2,num; static char a1002,b1002,c2; cina0;/每个汉字占两个字符的位置 for(i=0;i+) if(ai0=0)break; size1=i; /计算该组汉字的长度 cinb0; for(i=0;i+)

6、if(bi0=0)break; size2=i; for(i=0;isize2;i+) num=search(a,size1,bi); c0=bi0; c1=bi1; if(flag) cout查找-c-成功!查找次数为:numendl; else cout查找-c-失败!查找次数为:numendl; system(pause); return 0; 算法的时空分析查找的最优情况是比较一次,即(1),最差情况比较n次,即(n)。int search(char a2,int size,char c2) 查找函数函数的调用关系图void Inverse(char a2,int i,int j) 转置函数主函数输入和输出的格式输入请输入一串汉字请输入你要查询的汉字(可以输多个汉字)若成功则输出提示语句并且输出查找次数若失败则输出提示语句并且输出查找次数四、测试结果

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号