数据结构实验报告(实验)
- 格式:docx
- 大小:117.73 KB
- 文档页数:19
题目描述
顺序表的移位是循环移位,例如顺序表:1,2,3,4,5,6。如果左移1位, 即原来的头元素移动到末尾,其它元素向左移1位,变成2,3,4,5,6,1。 同理,如果右移1位,即原来的尾元素移动到头,其它元素向右移1位,变 成6,1,2,3,4,5。以下是移位的多个例子:
第二行输入n个数据,数据是小于100的正整数
第三行输入m表示顺序表B包含的•n个数据
第二行输入m个数据,数据是小于100的正整数
Output
输出合并后的顺序表内的所有数据,数据之间用空格隔开
Sample In put
3
11 33 55
4
22 44 66 88
Sample Output
11 22 33 44 55 66 88
5
11 22 33 44 55
0 2
I4
样例输出
II22 33 44 55
33 44 55 11 22
44 55 11 22 33
三、实验பைடு நூலகம்骤与过程:
思路:
1.顺序表类定义
2•顺序表的创建、插入、删除、查找等功能的实现
3.顺序表的测试运行
源代码:
A
#in clude<iostream>
using n amespace std;
{
if (le ngth==listsize)
return 0;//顺序表已满
if (i<1 || i>le ngth+1)
return 0;//i值不合法
if (i==le ngth+1)
elem[le ngth]=e;
else
for (int j=le ngth;j>i-1;j--) elem[j]=elem[j-1];〃位置i后面的元素全部后移一位
len gth=0;
elem=n ew in t[listsize];
}
List::~List() //析构函数
{
delete[]elem;//回收空间
}
int List::ListLength() //获取顺序表的实际长度
{
return len gth;
}
int List::Listlnsert(int i,int e)〃插入一个元素
原数据: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
深圳 大学实 验报告
课程名称:
数据结构实验与课程设计
实验项目名称:
实验一:顺序表的应用
学院:
计算机与软件学院
专业:
指导教师:
蔡平
报告人:文成
学号:2011150259班级:
5
实验时间:
2012-9-17
实验报告提交时间:
2012-9-24
教务部制
一、实验目的与要求:
目的:
1.掌握线性表的基本原理
2.掌握线性表地基本结构
class List
{
private:
int *elem;〃数组元素
in t listsize;〃顺序表最大长度
in t le ngth;〃顺序表当前长度
public:
List(i nt size); //构造函数
~List();〃析构函数
int ListLength(); //获取顺序表的实际长度
第三行输入要插入的新数据和插入位置
第四行输入要删除的位置
第五行输入要查找的位置
Output
第一行输出创建后,顺序表内的所有数据,数据之间用空格隔开
第二行输出执行插入操作后,顺序表内的所有数据,数据之间用空格隔开 第三行输出执行删除操作后,顺序表内的所有数据,数据之间用空格隔开 第四行输出指定位置的数据
3•掌握线性表地创建、插入、删除、查找的实现方法
要求:
1.熟悉C++语言编程
2•熟练使用C++语言实现线性表地创建、插入、删除、查找的实现方法
二、实验内容:
Problem A:数据结构实验1顺序表例程
Descripti on
实现顺序表的创建、插入、删除、查找
In put
第一行输入顺序表的实际长度n
第二行输入n个数据
11 22 33 44 55
11 44 33 22 55
error
HINT
本题执行两次交换操作,注意写好输入接口。
Problem C:数据结构实验1顺序表的合并
Descripti on
假定两个顺序表的数据已经按照从小到大的顺序排列,实现两个顺序表的合 并
In put
第一行输入n表示顺序表A包含的•n个数据
int ListInsert(int i,int e);〃插入一个元素
int ListDelete( int i);〃删除一个元素,返回删除的元素
int GetElem(i nt i);〃获取一个元素,返回元素值
};
List::List(i nt size)//构造函数
{
listsize=size;
Sample In put
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顺序表的数据交换
Descripti on实现顺序表内的元素交换操作
In put
第一行输入n表示顺序表包含的•n个数据
第二行输入n个数据,数据是小于100的正整数
第三行输入两个参数,表示要交换的两个位置
第四行输入两个参数,表示要交换的两个位置
Output
第一行输出创建后,顺序表内的所有数据,数据之间用空格隔开
第二行输出执行第一次交换操作后,顺序表内的所有数据,数据之间用空格 隔开
第三行输出执行第二次交换操作后,顺序表内的所有数据,数据之间用空格 隔开
注意加入交换位置的合法性检查,如果发现位置不合法,输出error。
Sample In put
5
11 22 33 44 55
2 4
0 1
Sample Output
第三行输入移动方向和移动的位数,左移方向为0,右移方向为1
输出
第一行输出创建后,顺序表内的所有数据,数据之间用空格隔开
第二行输出执行移位操作后,顺序表内的所有数据,数据之间用空格隔开 第三行输出执行移位操作后,顺序表内的所有数据,数据之间用空格隔开 如果发现输入的移动方向或位数不合法,不执行移位操作,输出error样例输入