深 圳 大 学 实 验 报 告
课程名称: 数据结构实验与课程设计
实验项目名称: 实验一:顺序表的应用
学院: 计算机与软件学院
专业:
指导教师: 蔡平
报告人: 文成 学号: 2011150259 班级: 5
实验时间: 2012-9-17
实验报告提交时间: 2012-9-24
教务部制
一、实验目的与要求: 目的: 1.掌握线性表的基本原理 2.掌握线性表地基本结构 3.掌握线性表地创建、插入、删除、查找的实现方法 要求: 1.熟悉C++语言编程 2.熟练使用C++语言实现线性表地创建、插入、删除、查找的实现方法 二、实验内容: Problem A: 数据结构——实验1——顺序表例程 Description 实现顺序表的创建、插入、删除、查找 Input 第一行输入顺序表的实际长度n 第二行输入n个数据 第三行输入要插入的新数据和插入位置 第四行输入要删除的位置 第五行输入要查找的位置 Output 第一行输出创建后,顺序表内的所有数据,数据之间用空格隔开 第二行输出执行插入操作后,顺序表内的所有数据,数据之间用空格隔开 第三行输出执行删除操作后,顺序表内的所有数据,数据之间用空格隔开 第四行输出指定位置的数据 Sample Input 6 11 22 33 44 55 66 888 3 5 2 Sample Output 11 22 33 44 55 66 11 22 888 33 44 55 66 11 22 888 33 55 66 22 HINT 第i个位置是指从首个元素开始数起的第i个位置,对应数组内下标为i-1的位置 Problem B: 数据结构——实验1——顺序表的数据交换 Description 实现顺序表内的元素交换操作 Input 第一行输入n表示顺序表包含的·n个数据 第二行输入n个数据,数据是小于100的正整数 第三行输入两个参数,表示要交换的两个位置 第四行输入两个参数,表示要交换的两个位置 Output 第一行输出创建后,顺序表内的所有数据,数据之间用空格隔开 第二行输出执行第一次交换操作后,顺序表内的所有数据,数据之间用空格隔开 第三行输出执行第二次交换操作后,顺序表内的所有数据,数据之间用空格隔开 注意加入交换位置的合法性检查,如果发现位置不合法,输出error。 Sample Input 5 11 22 33 44 55 2 4 0 1 Sample Output 11 22 33 44 55 11 44 33 22 55 error HINT 本题执行两次交换操作,注意写好输入接口。 Problem C: 数据结构——实验1——顺序表的合并 Description 假定两个顺序表的数据已经按照从小到大的顺序排列,实现两个顺序表的合并 Input 第一行输入n表示顺序表A包含的·n个数据 第二行输入n个数据,数据是小于100的正整数 第三行输入m表示顺序表B包含的·n个数据 第二行输入m个数据,数据是小于100的正整数 Output 输出合并后的顺序表内的所有数据,数据之间用空格隔开 Sample Input 3 11 33 55 4 22 44 66 88 Sample Output 11 22 33 44 55 66 88 问题 D: 数据结构——实验1——顺序表的循环移位 题目描述 顺序表的移位是循环移位,例如顺序表:1,2,3,4,5,6。如果左移1位,即原来的头元素移动到末尾,其它元素向左移1位,变成2,3,4,5,6,1。同理,如果右移1位,即原来的尾元素移动到头,其它元素向右移1位,变成6,1,2,3,4,5。以下是移位的多个例子: 原数据:1,2,3,4,5,6 左移3位:4,5,6,1,2,3,与原数据对比 右移4位:3,4,5,6,1,2,与原数据对比 请编写程序实现顺序表的循环移位操作 输入 第一行输入n表示顺序表包含的·n个数据 第二行输入n个数据,数据是小于100的正整数 第三行输入移动方向和移动的位数,左移方向为0,右移方向为1 第三行输入移动方向和移动的位数,左移方向为0,右移方向为1 输出 第一行输出创建后,顺序表内的所有数据,数据之间用空格隔开 第二行输出执行移位操作后,顺序表内的所有数据,数据之间用空格隔开 第三行输出执行移位操作后,顺序表内的所有数据,数据之间用空格隔开 如果发现输入的移动方向或位数不合法,不执行移位操作,输出error 样例输入 5 11 22 33 44 55 0 2 1 4 样例输出 11 22 33 44 55 33 44 55 11 22 44 55 11 22 33 三、实验步骤与过程: 思路: 1.顺序表类定义 2.顺序表的创建、插入、删除、查找等功能的实现 3.顺序表的测试运行 源代码: A: #include