顺序表的实现

 


1.实验的目的

(1)掌握线性表的顺序存储结构;

(2)验证顺序表及其基本操作的实现;

(3)理解算法与程序的关系,能够将顺序表算法转换为对应的程序;

2.实验的内容

(1)建立含有若干个元素的顺序表;

(2)对已建立的顺序表实现插入、删除、查找等基本操作。

3.实验心得

实验就是将课本上的零碎知识连接运用起来,这次实验因为太久没写代码了,连头文件都忘了怎么写了,全程翻书。所以这次代码写的很慢,不过收获也很大,既学会了如何完成顺序表的实现,又复习了c++。

代码如下:

#include<iostream>
using namespace std;
const int MaxSize=10;
class Seqlist{
public:
Seqlist(int a[],int n);//建立一个顺序表 
~Seqlist(){};//析构函数
void Insert(int i,int x);//插入
void Delete(int i);//删除第i个位置的元素
int Locate(int x);//X位于
void Printlist();//全显
private:
int data[MaxSize];//建立一个数据数组
int length;//数组长度
};
Seqlist::Seqlist(int a[],int n){
for( int i=0;i<n;i++)
data[i]=a[i];
length=n;}
void Seqlist::Insert (int i,int x){
if(i<1||i>length)
cout<<" 位置非法"<<endl;
for(int j=length;j>i-1;j--)
data[j+1]=data[j];
data[i]=x;
length+=1;
}
void Seqlist::Delete(int i){
if(i<1||i>length)
cout<<" 位置非法"<<endl;
int x=data[i-1];
for(int j=i-1;j<length-1;j++)
data[j]=data[j+1];
length--;
cout<<"位置"<<i<<"上的数据"<<x<<"已删除" <<endl;
}
int Seqlist::Locate(int x){
for(int i=0;i<length;i++)
if(data[i]==x)
return i+1;
return 0;
}
void Seqlist::Printlist(){
for(int i=0;i<length;i++)
cout<<data[i]<<"";
cout<<endl;
}
int main(){
int a[7]={1,2,3,4,5,6,7};
Seqlist L(a,7);
cout<< "执行插入操作前数据为:"<<endl;
L.Printlist();
L.Insert(3,8);
cout<<"执行插入后数据为:"<<endl;
L.Printlist();
cout<<"值为5的元素位置为:";
cout<<L.Locate(5)<<endl;
cout<<"执行删除第二个元素操作,删除前数据为:"<<endl;
L.Printlist();
L.Delete(2);
cout<<"删除后数据为:"<<endl;
L.Printlist();
return 0; }

运行结果如下:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值