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

  • 5
  • 0
  • 约1.46万字
  • 约 40页
  • 2016-08-29 发布于重庆
  • 举报
顺序表链表KMP算法-数据结构报告

目录 需求分析-------------------------------------------------P3 概要设计-------------------------------------------------P4 详细设计-------------------------------------------------P9 调试分析-------------------------------------------------P11 测试结果-------------------------------------------------P11 课程设计总结---------------------------------------------P15 参考文献-------------------------------------------------P16 附录------------------------------------------------------P16 一:需求分析: 顺序表的插入、删除、合并等操作:涉及顺序表的创建、插入、删除、查找、合并、显示等。采用数组作为顺序表的结构,定义一个MAXSIZE作为数组的最大长度。从键盘接收用户输入的基本数据类型(这里以char为例,也可以是int等其他类型)为例演示方便,系统自带一个已经含有元素的顺序表。然后接收用户输入指令进行相应的操作。插入演示时,要求用户输入插入的字符串和要插入的位置;删除演示时要求用户输入要删除的长度和起始位置;合并操作演示时,要求用户输入一个字符串用来建立新的顺序表,然后两个顺序表合并并输出新的顺序表。 链表的查找、删除、计数、输出等功能以及有序链表的合并本程序中用到的所有抽象数据类型的定义 1、顺序表 ADT LinkList { 数据对象:D={ai|ai∈ElemSet,i=1,2,…,n,n=0} 数据关系:R1={ai-1,ai|ai-1,ai∈D,i=2,…,n} 基本操作: InitList_L( L) 操作结果:构造一个空的链表 CreateList_f() 初始条件:存在空的链表L。 操作结果:头插入法实现链表的创建,并且返回头结点CreateList_r(void) 初始条件:存在空的链表L。 操作结果:插入法实现链表的创建,并且返回头结点 LocateElem_L(L, e) 初始条件:存在空的链表L。 操作结果:查询第一个数据元素,若存在,则返回它的位序,否则返回 0NumberElem_L(L) 初始条件:存在链表L。 操作结果:计算元素的个数 Show_L(L) 初始条件:存在链表L。 操作结果:输出显示链表L。 ListDelete_L(L, i) 初始条件:存在链表L非空,1=i=ListLength(L)。 操作结果:在顺序链表L中删除第i个元素,返回其值 DeSameElem_L(L) 初始条件:存在非空顺序表L。 操作结果:剔除L中的相同元素。 MergeList_L(La, Lb, Lc) 初始条件:存在链表La,Lb,Lc。 操作结果:把LaLb合并为Lc。 SortList_L初始条件:存在链表L。 操作结果:将按非递减顺序排序ListInsert(L,i,e) 初始条件:链表L存在,并且1=i=ListLength(L)+1。 操作结果:在L中的第i个位置之前插入新的数据元素e。 }ADT LinkList ADT HString { 数据对象:D={ai|ai∈CharacterSet,i=1,2,…,n,n=0} 数据关系:R1={ai-z,ai|ai-1,ai∈D,i=2,…,n} 基本操作: InitStr(S) 操作结果:构造一个空 CreateStr(S,ch) 初始条件:ch是字符串常量。 操作结果:生成一个其值等于ch 的串。 ShowStr Index_KMP(S, T, pos, nextval[]) 初始条件:串S和T存在,T是非空串,1=pos=SteLength(L),nextval是next修正值。 操作结果:若主串S中存在和串T相同的子串,则返回它在主串S中第pos个字符之后第一次出现的位置;若不则函数值为0 get_next(S, next[]) 初始条件:串存在。 操作结果:求串的next值。 get_nextval(, nextval[]) 初始条件:串T存在。 操作结果:求串的nextval值。 }ADT HString #define MAXSIZE 100 typedef struct node { char data;//数据域 struct node *next; //指针域

文档评论(0)

1亿VIP精品文档

相关文档