顺序表的实现

来源:互联网 发布:盗图投诉淘宝复审 编辑:程序博客网 时间:2024/06/05 11:29
 


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; }

运行结果如下:

原创粉丝点击