# include<istream>
# include<math.h>
# include<stdio.h>
typedef int Elemtype ;
#define InitMaxsize 50
typedef struct{
Elemtype data[InitMaxsize];
int length;
int Maxsize = InitMaxsize;
}SqList;
typedef struct{
Elemtype *data;
int Maxsize;
int length;
}SeqList;
void initSqList(SqList &L)
{
for(int i = 0;i < 5;i++)
L.data[i] = i+1;
for(int i = 0;i < 5;i++)
printf("%d ",L.data[i]);
printf("\n");
L.length = 5;
}
void initSeqList(SeqList &L)
{
L.data = (int *)malloc(InitMaxsize * sizeof(int));
for(int i = 0;i < 5;i++)
L.data[i] = i+1;;
for(int i = 0;i < 5;i++)
printf("%d ",L.data[i]);
printf("\n");
L.length = 5;
L.Maxsize = InitMaxsize;
}
void increamSize(SeqList &L,int len)
{
printf("%d\n",L.data[51]);
int *p = L.data;
L.data = (int *)malloc((InitMaxsize + len) * sizeof(int));
for(int i = 0; i < L.length; i++){
L.data[i] = p[i];
}
L.Maxsize += 5;
printf("%d\n",L.data[51]);
}
bool SqListinsert(SqList &L,int i,Elemtype e)
{
if(i<1 || i > L.length+1)
return false;
if(L.length >= L.Maxsize)
return false;
for(int j = L.length; j>=i; j--)
{
L.data[j] = L.data[j-1];
}
L.data[i-1] = e;
L.length++;
for(int q = 0;q < L.length;q++)
{
printf("%d ",L.data[q]);
}
printf("\n");
return true;
}
bool SeqListinsert(SeqList &L,int i,Elemtype e)
{
if(i<1 || i > L.length+1)
return false;
if(L.length >= L.Maxsize)
return false;
for(int j = L.length; j>=i; j--)
{
L.data[j] = L.data[j-1];
}
L.data[i-1] = e;
L.length++;
for(int q = 0;q < L.length;q++)
{
printf("%d ",L.data[q]);
}
printf("\n");
return true;
}
bool SqListdelete(SqList &L, int i, Elemtype &e)
{
if(i<1 || i > L.length)
return false;
e = L.data[i-1];
for(int j = i;j < L.length; j++)
{
L.data[j-1] = L.data[j];
}
L.length--;
for(int q = 0;q < L.length;q++)
{
printf("%d ",L.data[q]);
}
printf("\n");
return true;
}
bool SeqListdelete(SeqList &L, int i, Elemtype &e)
{
if(i<1 || i > L.length)
return false;
e = L.data[i-1];
for(int j = i;j < L.length; j++)
{
L.data[j-1] = L.data[j];
}
L.length--;
for(int q = 0;q < L.length;q++)
{
printf("%d ",L.data[q]);
}
printf("\n");
return true;
}
int locateElemSq(SqList &L,Elemtype e)
{
for(int i = 0;i < L.length;i++)
{
if(L.data[i] == e)
return i+1;
}
return 0;
}
int locateElemSeq(SeqList &L,Elemtype e)
{
for(int i = 0;i < L.length;i++)
{
if(L.data[i] == e)
return i+1;
}
return 0;
}
int main(void)
{
SqList L1;
initSqList(L1);
SeqList L2;
initSeqList(L2);
return 0;
}