#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
#define ERROR 0
#define OK 1
#define num_stop -1
#define OVERFLOW -2
#define lon 10
typedef int ElemType;
typedef int Status;
typedef struct
{
ElemType *elem;
int length;
} SqList ;
Status InitList_Sq (SqList &L)
{
int i;
L.elem = (ElemType*)malloc(lon*sizeof(ElemType));
if(!L.elem) exit (OVERFLOW);
L.length = 10;
return OK;
}
Status GETElem(SqList L,int i,ElemType &e)
{
if (i < 1 || i > L.length )
return ERROR;
e=L.elem[i-1];
return OK;`在这里插入代码片`
}
int LocateElem(SqList L,ElemType e,ElemType &q)
{
int i;
for (i = 0; i < L.length; i++ )
{
if (L.elem[i] == e)
q=i+1;
}
return OK;
}
Status ListInsert(SqList &L,ElemType e,ElemType i)
{
int j;
if((i < 1) || (i > L.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 ListDelete(SqList &L,ElemType i)
{
int j;
if((i < 1) || (i > L.length+1))
return ERROR;
for(j = i;j <= L.length-1;j++)
L.elem[j-1] =L.elem[j];
--L.length;
return OK;
}
Status see(SqList &L)
{
int i;
printf("当前数值为:");
for (i=0;i<lon;i++)
printf("%6d",L.elem[i]);
printf("\n");
return OK;
}
int main()
{
SqList L;
int k,i,m=1;
ElemType e,q;
if(InitList_Sq(L))
printf("构造成功\n");
for(i = 0;i < L.length;i++)
{
L.elem[i] = i;
printf("%6d",L.elem[i]);
}
printf("\n");
while(m)
{
printf("1.取值\n2.查找\n3.插入\n4.删除\n5.退出\n");
printf("请选择数字操作");
scanf("%d",&k);
switch(k)
{
case 1: printf("请输入位置(1-10)");
scanf("%d",&i);
GETElem(L,i,e) ;
printf("此处的值为:%d",e);
printf("\n");
break;
case 2: printf("请输入要查找的数值");
scanf("%d",&e);
LocateElem(L, e ,q);
printf("%d是第%d个元素",e,q);
printf("\n");
break;
case 3: printf("请输入要插入的位置");
scanf("%d",&i);
printf("请输入要插入的数值");
scanf("%d",&e);
ListInsert(L,e,i);
for(i = 0;i < L.length;i++)
printf("%6d",L.elem[i]);
printf("\n");
printf("插入成功!");
printf("\n");
break;
case 4: printf("请输入要删除的位置");
scanf("%d",&i);
ListDelete(L,i);
for(i = 0;i < L.length;i++)
printf("%6d",L.elem[i]);
printf("\n");
printf("删除成功!");
printf("\n");
break;
case 5:m=0;
}
}
return 0;
}