顺序表的几个基本操作
#include <iostream>
#include <cstdio>
#define MAXSIZE 100
using namespace std;
typedef struct
{
int *elem;
int length;
}SqList;
void Init(SqList &L)
{
L.elem = new int[MAXSIZE];
if(!L.elem)
exit;
L.length=0;
}
bool Getelem(SqList L,int i,int &e)
{
if(i<1||i>L.length)
return false;
if(i>=1&&i<=L.length)
e=L.elem[i-1];
return true;
}
void CreateList(SqList &L,int i)
{
int j;
for(j=0;j<i;j++)
cin>>L.elem[j];
L.length=i;
}
int Locate(SqList L,int e)
{
int i;
for(i=0;i<L.length;i++)
{
if(L.elem[i]==e)
return i+1;
}
}
bool ListInsert(SqList &L,int i,int e)
{
int j;
if(i<1||i>L.length)
return false;
if(L.length==MAXSIZE)
return false;
for(j=L.length-1;j>=i-1;j--)
{
L.elem[j+1]=L.elem[j];
}
L.elem[i-1]=e;
L.length++;
return true;
}
bool ListDelete(SqList &L,int i)
{
int j;
if(i<1||i>L.length)
return false;
for(j=i;j<L.length;j++)
{
L.elem[j-1]=L.elem[j];
}
L.length--;
return true;
}
void display(SqList L)
{
int i;
for(i=0;i<L.length;i++)
{
cout<<L.elem[i];
}
cout<<endl;
}
int main()
{
int i,n,e,j;
cout<<"输入个数 ";
cin>>n;
SqList L;
Init(L);
CreateList(L,n);
display(L);
Getelem(L,n-1,e);
j=Locate(L,e);
cout<<j;
ListInsert(L,n-1,e);
display(L);
ListDelete(L,n-1);
display(L);
return 0;
}