文档介绍:本文格式为Word版,下载可任意编辑
— 2 —
数据结构实验报告(实验一)
深
圳
大
学
实
验
报
告 告
课程名称:
数据移 3 位:4,5,6,1,2,3,与原数据比较 右移4位:3,4,5,6,1,2,与原数据比较 请编写程序实现依次表得循环移位操作 输入 第一行输入n表示依次表包含得n 个数据 其次行输入 n 个数据,数据就是小于 100得正整数 第三行输入移动方向与移动得位数,左移方向为 0,右移方向为 1 第三行输入移动方向与移动得位数,左移方向为 0,右移方向为 1
本文格式为Word版,下载可任意编辑
— 5 —
输出 第一行输出创造后,依次表内得全体数据,数据之间用空格隔开 其次行输出执行移位操作后,依次表内得全体数据,数据之间用空格隔开 第三行输出执行移位操作后,依次表内得全体数据,数据之间用空格隔开 假设察觉输入得移动方向或位数不合法,不执行移位操作,输出 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
三、 测验步骤与过程:
思路: 2、依次表得创造、插入、删除、查找等功能得实现 3、依次表得测试运行 源代码: A :
#include<iostream using namespace std; class List { private:
int *elem;//
素元组数ﻩ int listsize;// 度长大最表序顺ﻩ ;htgnel tniﻩ // 度长前当表序顺ﻩpublic:
本文格式为Word版,下载可任意编辑
— 7 —
List(int size);// 数函造构ﻩ ~List();
//析构函数
int ListLength(); //获取依次表得实际长度
int ListInsert(int i,int e);// 素元个一入插ﻩ ;)i tni(eteleDtsiL tniﻩ //删除一个元素,返回删除得元素
int GetElem(int i);// 值素元回返,素元个一取获ﻩﻩ}; List::List(int size) //构造函数 {
;ezis=ezistsilﻩ length=0;
elem=new int[listsize]; } List::~List() //析构函数 {
;mele][eteledﻩ //回收空间 } int List::ListLength()// 度长际实得表序顺取获ﻩ{
;htgnel nruterﻩ} int List::ListInsert(int i,int e)// 素元个一入插ﻩ{
if (length==listsize)
ﻩ return 0;// 满已表序顺ﻩ if (i1 || ilength+1)
法合不值 i// ;0 nruterﻩ )1+htgnel==i( fiﻩ
;e=]htgnel[meleﻩ else
)-j;1ij;htgnel=j tni( rofﻩﻩ
elem[j]=elem[j-1]; //位置 i 后面得元素全部后移一位
本文格式为Word版,下载可任意编辑
— 7 —
;e=]1i[meleﻩ ;++htgnelﻩ return 1; } int List::ListDelete(int i)
//删除一个元素,返回删除得元素 {
)0==htgnel( fiﻩ ﻩ return 0;
)htgneli || 1〈i( fiﻩ
return 0;
int temp=elem[i1]; /)++j;htgnelj;1-i=j tni( rofﻩ/ 位一移前部全素元得面后 i 置位ﻩ ;]1+j[mele=]j[meleﻩﻩ ;-htgnelﻩ ;pmet nruterﻩ
} int List::GetElem(int i)
//获取一个元素,返回元素值 {
)htgneli || 1<i(fiﻩ ;0 nruterﻩﻩ ;]1i[mele nruterﻩ} int main()
{
;pmet,nel,i tniﻩ List