```cpp
#include <iostream.h>
#include<string.h>
#include<iomanip.h>
#define MAXLEN 100
struct SeqList{
int data[MAXLEN];
int last;
};
/*初始化*/
void InitSeqList(SeqList *list)
{
list->last=-1;
}
//在第i个位置上插入数据key
int InsertSeqList(SeqList *list,int i,int key)
{
int k;
if(list->last==MAXLEN-1){/*表空间已满,不能插入*/
cout<<" 表满 "<<endl;return 0;
}
if( i<0 || i>list->last+1 ){/*检查插入位置的合法性*/
cout<<" 位置不合法 "<<endl;return 0;
}
/*将位置i~last上的元素向后移动*/
for(k=list->last;k>=i;k--)
list->data[k+1]=list->data[k];
list->data[i]=key; /*新元素插入*/
list->last++; /*last仍指向最后元素*/
return 1;
}
//删除指定位置i上的数据
int DeleteSeqList(SeqList *list,int i)
{
int k,a;
if(list->last==-1){/*表空,不能删除*/
cout<<" 表空 "<<endl;return 0;
}
if(i<0||i>list->last){/*检查删除位置的合法性*/
cout<<" 位置不合法 "<<endl;return 0;
}
/*将位置i+1~ last上的元素向前移动*/
a=list->last;
for (k = i+1; list->last >= k ; k++ )
list->data[k-1] = list->data[k];
list->last=a-1; /*last仍指向最后元素*/
return 1;
}
/*查找循环*/
int LocateSeqList(SeqList *list, int key)
{
cout<<"查找的数据的位置:"<<endl;
int i;
for(i = 0; i<=list->last; i++)
if(list->data[i]==key)
cout<<i<<endl;
return -1;
}
/*顺序输出表*/
void Display(SeqList *list)
{
for(int i=0;i<=list->last;i++)
cout<<list->data[i]<<" ";
cout<<endl;
}
void main()
{ int a,b,c,d;
SeqList list;
InitSeqList(&list);//空表
list.data[0]=12;
list.data[1]=34;
list.data[2]=17;
list.data[3]=23;
list.data[4]=31;
list.data[5]=10;
list.last=5;
cout<<"输入前的数据:"<<endl;
Display(&list);
cout<<"请输入要插入的位置和数据:"<<endl;
cin>>a>>b;
InsertSeqList(&list,a,b);
cout<<"输入后的数据:"<<endl;
Display(&list);
cout<<"请输入要删除的位置:"<<endl;
cin>>c;
DeleteSeqList(&list,c);
cout<<"删除后的数据:"<<endl;
Display(&list);
cout<<"查找的数据:"<<endl;
cin>>d;
LocateSeqList(&list,d);
}
结果