1 / 92
文档名称:

顺序表链表KMP实验报告.doc

格式:doc   大小:700KB   页数:92页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

顺序表链表KMP实验报告.doc

上传人:wangzhidaol 2018/1/22 文件大小:700 KB

下载得到文件列表

顺序表链表KMP实验报告.doc

相关文档

文档介绍

文档介绍:附件(四)
深圳大学实验报告
课程名称: 数据结构实验与课程设计
实验项目名称: 顺序表、链表、堆栈队列、串KMP算法

学院:

专业:

指导教师:

报告人: 学号: 班级:
实验时间:
实验报告提交时间:
教务处制
实验目的与完成说明:
1. 简单介绍本实验的主要目的
2. 说明你自己在本次实验中完成了第几项要求(必填)
DS实验01--顺序表
1. Problem A: DS顺序表--类实现
目的:
(1)实现顺序表的用C++语言和类实现顺序表
(2)属性包括:数组、实际长度、最大长度(设定为1000)
(3)操作包括:创建、插入、删除、查找
要求:
Input
第1行先输入n表示有n个数据,即n是实际长度;接着输入n个数据(完成)
第2行输入要插入的位置和新数据(完成)
第3行输入要插入的位置和新数据(完成)
第4行输入要删除的位置(完成)
第5行输入要删除的位置(完成)
第6行输入要查找的位置(完成)
第7行输入要查找的位置(完成)
Output
第1行输出创建后的顺序表内容,包括顺序表实际长度和数据(完成)
每成功执行一次操作(插入或删除),输出执行后的顺序表内容(完成)
每成功执行一次查找,输出查找到的数据(完成)
如果执行操作失败(包括插入、删除、查找等失败),输出字符串error,不必输出顺序表内容(完成)
2. Problem B: DS顺序表--连续操作
目的:
(1)建立顺序表的类,属性包括:数组、实际长度、最大长度(设定为1000)
(2)实现连续多个插入,即从位置i开始插入多个数据
(3)实现连续多个删除,即从位置i开始删除多个数据
要求:
Input
第1行先输入n表示有n个数据,即n是实际长度;接着输入n个数据(完成)
第2行先输入i表示插入开始的位置,再输入k表示有k个插入数据,接着输入k个数据(完成)
第3行先输入i表示删除开始的位置,再输入k表示要删除k个数据(完成)
Output
顺序表内容包括顺序表的实际长度和数据,数据之间用空格隔开(完成)
第1行输出创建后的顺序表内容(完成)
第2行输出执行连续插入后的顺序表内容(完成)
第3行输出执行连续删除后的顺序表内容(完成)
3. Problem C: DS顺序表--合并操作
目的:
(1)建立顺序表的类,属性包括:数组、实际长度、最大长度(设定为1000)
(2)已知两个递增序列,把两个序列的数据合并到顺序表中,
(3)并使得顺序表的数据递增有序。
要求:
Input
第1行先输入n表示有n个数据,接着输入n个数据,表示第1个序列,要求数据递增互不等(完成)
第2行先输入m表示有m个数据,接着输入m个数据,表示第2个序列,要求数据递增互不等(完成)
Output
顺序表内容包括顺序表的实际长度和数据,数据之间用空格隔开(完成)
第1行输出创建后的顺序表内容(完成)
DS实验02--链表
Problem A: DS单链表--类实现
目的:
(1)用C++语言和类实现单链表,含头结点
(2)属性包括:data数据域、next指针域
(3)操作包括:插入、删除、查找
(4)注意:单链表不是数组,所以位置从1开始对应首结点,头结点不放数据
要求:
Input
第1行先输入n表示有n个数据,接着输入n个数据(完成)
第2行输入要插入的位置和新数据(完成)
第3行输入要插入的位置和新数据(完成)
第4行输入要删除的位置(完成)
第5行输入要删除的位置(完成)
第6行输入要查找的位置(完成)
第7行输入要查找的位置(完成)
Output
数据之间用空格隔开,(完成)
第1行输出创建后的单链表的数据(完成)
每成功执行一次操作(插入或删除),输出执行后的单链表数据(完成)
每成功执行一次查找,输出查找到的数据(完成)
如果执行操作失败(包括插入、删除、查找等失败),输出字符串error,不必输出单链表(完成)
Problem B: DS单链表--结点交换
目的:
(1)用C++实现含头结点的单链表,然后实现单链表的两个结点交换位置。
(2)注意不能简单交换两个结点包含数据,必须通过修改指针来实现两个结点的位置交换
(3)交换函数定义可以参考:
(4)swap(int  pa, int pb)  //pa和pb表示两个结点在单链表的位置序号
(5)swap (ListNode * p, ListNode * q)  //p和q表示指向两个结点的指针
要求:
Input
第1行先输入n表示有n个数据,接着输入n个数据(完成)