#include <iostream>
#include <random>
#include<time.h>
using namespace std;
#define maxsize 1000
typedef int elemType;
typedef struct {
int length;
elemType data[maxsize];
} sqList;
void initList(sqList* S)//初始化线性表
{
S->length = 0;
}
bool insertList(sqList* S, int i, elemType e)//插入数据
{
if (S->length==maxsize)
{
return false;
}
if (i <1||i>S->length+1)
{
return false;
}
if (i<=S->length) //插入位置不是尾表
{
for (int k=S->length-1;k>=i-1;--k)
{
S->data[k + 1] = S->data[k]; //元素向后移动
}
}
S->data[i - 1] = e;
S->length++;
return true;
}
bool delList(sqList* S,int i,elemType* e) //删除数据
{
if (S->length==0)
{
return false;
}
if (i>S->length&&i<1)
{
return false;
}
*e = S->data[i - 1];
if (i<S->length) //删除位置不是最后一个元素
{
for (int k=i;k<S->length;++k)
{
S->data[k-1] = S->data[k ];
}
}
S->length--;
return true;
}
void printList(sqList* S)
{
if (S->length==0)
{
return;
}
int i;
for (i=0;i<S->length;++i)
{
cout << S->data[i] << "\t";
}
cout << endl;
}
int main()
{
default_random_engine e(time(NULL));
uniform_int_distribution<int> dis1(1, 100);
sqList* S=new sqList;
initList(S);
//插入数据
for (int i=0;i<10;++i)
{
insertList(S, i + 1, dis1(e));
}
printList(S);
//删除数据
elemType ee;
delList(S, 2, &ee);
printList(S);
delete S;
system("pause");
return 0;
}