1
#include
#include
#define TRUE 1
#define FALSE -1
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status ;
typedef int ElemType ;
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef struct{
ElemType *elem;
int length;
int listsize;
}sqList;
Status ListInsert_Sq(sqList &L, int i, ElemType e);
Status ListTraverse_Sq(sqList &L);
Status Create_List(sqList &L)
{
ElemType e;
printf("0 \n");
printf("\n (0 ):\n");
scanf("%d",&e);
while(e!=0)
{
ListInsert_Sq(L,L.length+1,e);
scanf("%d",&e);
}
return OK;
}
Status InitList_Sq(sqList &L)
{
L.elem =(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if (!L.elem) exit(OVERFLOW);
L.length = 0;
L.listsize = LIST_INIT_SIZE;
printf("\n \n");
return OK;
} // InitList_Sq
Status ListInsert_Sq(sqList &L, int i, ElemType e)
{
ElemType *p;
int v;
printf("1 5\n");
if (i < 1 || i > L.length+1) return ERROR;
if (L.length >= L.listsize)
{
ElemType *newbase = (ElemType *)realloc(L.elem,
(L.listsize+LISTINCREMENT)*sizeof (ElemType));
if (!newbase) return ERROR;
L.elem = newbase;
L.listsize += LISTINCREMENT;
}
ElemType *q = &(L.elem[i-1]);
for (p = &(L.elem[L.length-1]); p>=q; --p) *(p+1) = *p;
*q = e;
++L.length;
for(v=0;v
{
printf("%d ",L.elem[v]);
}
return OK;
} // ListInsert_Sq
int G