#include iostream
using namespace std;
#define OVERFLOW -2
#define OK 1
#define ERROR 0
#define MAXSIZE 100
typedef int Status;
typedef int ElemType;
typedef struct
{
ElemType *elem;
int length;
}SqList;
Status InitList(SqList L)
{
L.elem= new ElemType[MAXSIZE];
if(!L.elem) exit(OVERFLOW);
L.length=0;
return OK;
}
Status ListInsert(SqList L,int i,ElemType e)
{
int j;
if(i1||iL.length+1)
return ERROR;
if(L.length==MAXSIZE)
return ERROR;
for(j=L.length-1;j=i-1;j--)
L.elem[j+1] = L.elem[j];
L.elem[i-1]=e;
++L.length;
return OK;
}
Status ListTraverse(SqList L)
{
ElemType *p;
int i;
p=L.elem;
for(i=1;i=L.length;i++);
printf("%d ",*p++);
printf("\n");
return OK;
}
Status ListDelete(SqList L,int i)
{
int j;
if(i1||i L.length)
return ERROR;
for(j=i;j=L.length-1;j++)
L.elem[j-1]=L.elem[j];
L.length--;
}
int LocateElem(SqList L,ElemType e)
{
int i;
for(i=0;iL.length-1;i++)
if(L.elem[i] == e) return i+1;
return 0;
}
Status GetElem(SqList L,int i,ElemType e)
{
if(i1||iL.length)
exit(ERROR);
e=*(L.elem+i-1);
return OK;
}
int main()
{
SqList L;
i = InitList(L);
int a[5] = {1,2,3,4,5};
for (i=1; i=5; i++)
ListInsert(L,i,a[i-1]);
ListTraverse(L);
return 0;
}
return 0;
}