#include <iostream>
#define MAXSIZE 20
using std::cin;
using std::cout;
typedef struct {
int* elem;
int length;
}SqList;
void initSqList(SqList &L)
{
L.elem = new int[MAXSIZE];
L.length = 0;
}
void insertRandomData(SqList &L)
{
for (int i = 0; i < 15; i++)
{
L.elem[i] = i;
L.length++;
}
}
void showData(SqList L)
{
cout << "当前表中元素为:\n";
for (int i = 0; i < L.length; i++)
{
cout << L.elem[i] << " ";
}
cout << "\n";
}
void insertData(SqList &L,int i,int e)
{
if ((i < 1) || (i > L.length + 1)) cout << "输入不合法\n";
if (L.length == MAXSIZE) cout << "表满";
for (int j = L.length-1; j>=i-1; j--)
{
L.elem[j+1] = L.elem[j];
}
L.elem[i - 1] = e;
L.length++;
}
void deleteData(SqList& L, int i)
{
if ((i < 1) || (i > L.length + 1)) cout << "输入不合法\n";
if (L.length==0) cout<<"表空";
cout << "删除的值为" << L.elem[i - 1]<<"\n";
for (int j = i; j <=L.length-1; j++)
{
L.elem[j-1] = L.elem[j];
}
L.length--;
}
int locateElem(SqList L,int e)
{
for (int i = 0; i < L.length; i++)
{
if (L.elem[i] == e) return i + 1;
}
return 99999;
}
int main()
{
SqList L;
initSqList(L);
insertRandomData(L);
showData(L);
cout << "请输入你要插入i位置上的元素e\n";
int insertI, insertE;
cin >> insertI >>insertE ;
insertData(L,insertI,insertE);
showData(L);
cout << "请输入你要删除第i个位置上的值\n";
int deleteI;
cin >> deleteI;
deleteData(L,deleteI);
showData(L);
cout << "请输入你要查找的值:\n";
int locateE;
cin >> locateE;
cout<<"你要查找的值在顺序表中的位置是:"<< locateElem(L,locateE);
}