顺序表、链表、KMP算法-数据结构报告.doc

顺序表、链表、KMP算法-数据结构报告.doc

ID:50134567

大小:354.00 KB

页数:40页

时间:2020-03-05

顺序表、链表、KMP算法-数据结构报告.doc_第1页
顺序表、链表、KMP算法-数据结构报告.doc_第2页
顺序表、链表、KMP算法-数据结构报告.doc_第3页
顺序表、链表、KMP算法-数据结构报告.doc_第4页
顺序表、链表、KMP算法-数据结构报告.doc_第5页
资源描述:

《顺序表、链表、KMP算法-数据结构报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、目录需求分析-------------------------------------------------P3概要设计-------------------------------------------------P4详细设计-------------------------------------------------P9调试分析-------------------------------------------------P11测试结果-------------------------------------------------P11课程设计总结

2、---------------------------------------------P15参考文献-------------------------------------------------P16附录------------------------------------------------------P16一:需求分析:顺序表的插入、删除、合并等操作:涉及顺序表的创建、插入、删除、查找、合并、显示等。采用数组作为顺序表的结构,定义一个MAXSIZE作为数组的最大长度。从键盘接收用户输入的基本数据类型(这里以char为例,也可以是int等其他类型)

3、为例演示方便,系统自带一个已经含有元素的顺序表。然后接收用户输入指令进行相应的操作。插入演示时,要求用户输入插入的字符串和要插入的位置;删除演示时要求用户输入要删除的长度和起始位置;合并操作演示时,要求用户输入一个字符串用来建立新的顺序表,然后两个顺序表合并并输出新的顺序表。链表的查找、删除、计数、输出等功能以及有序链表的合并:涉及链表的创建、删除、查找、合并、显示等。需要动态分配内存,用指针连接各节点。先自定义一个ListNode节点用户存储数据和指针。为了演示方便,系统依然自带了一个创建好并且含有若干元素的链表,用户可以在此基础上进行操作。查找操作时,要求用户

4、输入查找的字符,然后输出查找结果;插入操作时,要求用户输入要插入的字符以及要插入的位置;删除演示时要求用户输入要删除的长度和起始位置;合并操作演示时,要求用户输入一个字符串用来建立新的链表,然后两个顺序表合并并输出新的顺序表。串的模式匹配:为了演示方便,系统依然自带了一个创建好并且含有若干元素的主串,然后接受用户输入的模式串。求出该模式串的next[]和nextval[],再由此验证模式串在主串中的匹配情况。二:概要设计:本程序中用到的所有抽象数据类型的定义如下。1、顺序表ADTSqList{数据对象:D={ai

5、ai∈ElemSet,i=1,2,…,n,n>=0

6、}数据关系:R1={

7、ai-1,ai∈D,i=2,…,n}基本操作:InitList_Sq(&L)操作结果:构造一个空的顺序表。Create_Sq(&L)初始条件:空顺序表L已经构造。操作结果:在L中存放数据元素,创建顺序表L。ListInsert_Sq&L,I,e)初始条件:顺序表L存在,并且1<=i<=ListLength(L)+1。操作结果:在L中的第i个位置之前插入新的数据元素e,L的表长加1。Show_Sq(L)初始条件:存在非空顺序表L。操作结果:输出显示顺序表L。MergeList_Sq(La,Lb,&Lc)初始条件:存在顺序表La

8、,Lb,Lc。操作结果:把LaLb合并为Lc。DeSameElem_Sq(&L)初始条件:存在非空顺序表L。操作结果:剔除L中的相同元素。Sort_Sq(&L)初始条件:存在非空顺序表L。操作结果://对顺序表L按非递减顺序排序。ListDelete_Sq(&L,i)初始条件:存在顺序表L非空,1<=i<=ListLength(L)。操作结果:在顺序表L中删除第i个元素,并用显示其值e}ADTSqList2、链表ADTLinkList{数据对象:D={ai

9、ai∈ElemSet,i=1,2,…,n,n>=0}数据关系:R1={

10、ai-1,ai∈D

11、,i=2,…,n}基本操作:InitList_L(&L)操作结果:构造一个空的链表CreateList_f(void)初始条件:存在空的链表L。操作结果:头插入法实现链表的创建,并且返回头结点给L。CreateList_r(void)初始条件:存在空的链表L。操作结果:尾插入法实现链表的创建,并且返回头结点给L。LocateElem_L(L,&e)初始条件:存在空的链表L。操作结果:查询L第一个与e相等的数据元素,若存在,则返回它的位序,否则返回0。NumberElem_L(L)初始条件:存在链表L。操作结果:计算并返回L数据元素的个数。Show_L(L)初始条件

12、:存在非空

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。