1 / 89
文档名称:

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

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

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

分享

预览

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

上传人:gyzhluyin 2016/12/24 文件大小:601 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-- 链表 1. 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 , 不必输出单链表( 完成) 2. Problem B: DS 单链表-- 结点交换目的: (1) 用 C++ 实现含头结点的单链表,然后实现单链表的两个结点交换位置。(2) 注意不能简单交换两个结点包含数据, 必须通过修改指针来实现两个结点的位置交换(3) 交换函数定义可以参考: (4) swap ( int pa, int pb) //pa 和 pb 表示两个结点在单链表的位置序号(5) swap (ListNode * p, ListNode * q)