顺序表基本操作实现
#include<iostream>
using namespace std;
struct List{
int *arr;
int length;
};//动态数组实现顺序表
List createlist()//构造线性表
{
List l;
l.length=0;
l.arr=new int[100];
return l;
}
//插入
void insert(List&l,int p,int e)
{
if(l.length==100)
{
cout<<"full"<<endl;
return;
}
for(int i=l.length-1;i>=p;i--)
{
l.arr[i+1]=l.arr[i];
}
l.arr[p]=e;
l.length++;
}
//删除
void elementdelete(List&l,int p)
{
if(p<0)
{
cout<<"false"<<endl;
return;
}
for(int i=p+1;i<l.length;i++)
{
l.arr[i-1]=l.arr[i];
}
l.length--;
}
//按值查找
int find(List l,int e)
{
for(int i=0;i<l.length;i++)
{
if(l.arr[i]==e) return i;
}
return -1;
}
//输出
void print(List l)
{
for(int i=0;i<l.length;i++)
{
cout<<l.arr[i]<<" ";
}
cout<<endl;
}
int main()
{
List l=createlist();
insert(l,0,2);
insert(l,1,3);
insert(l,2,4);
elementdelete(l,1);
print(l);
int index = find(l,4);
cout << index << endl;
return 0;
}