case 4:if (ListEmpty(L)==1)
printf("线性表为空\n");
else
printf("线性表不为空\n");
break;
case 5:printf("线性表长度:%d",ListLength(L));break;
case 6:printf("输入位置:");
scanf("%d",&i);
if (GetElem(L,i,&e)==OK)
printf("此位置的数据:%d\n",e);
else
printf("此位置没有数据\n");
break;
case 7:printf("输入数据:");
scanf("%d",&e);
if (LocateElem(L,e,cmp)!=0)
printf("第%d个数据\n",LocateElem(L,e,cmp));
else
printf("没有找到\n");
break;
case 8:printf("输入数据:");
scanf("%d",&e);
if (PriorElem(L,e,&pre_e)==1)
printf("前驱:%d",pre_e);
else
printf("无前驱\n");
break;
case 9:printf("输入数据:");
scanf("%d",&e);
if (NextElem(L,e,&next_e)==1)
printf("后继:%d",next_e);
else
printf("无后继\n");
break;
case 10:printf("输入位置及数据:");
scanf("%d%d",&i,&e);
result=ListInsert(&L,i,e);
if (result==ERROR)
printf("输入位置有误\n");
else
if (result==OVERFLOW)
printf("操作失败,内存溢出!\n");
else
printf("插入成功\n");
break;
case 11:printf("输入位置:");
scanf("%d",&i);
if (ListDelete(&L,i,&e)==ERROR)
printf("输入位置有误\n");
else
printf("删除的数据:%d",e);
break;
case 12:if (ListTraverse(L,DisplayData)==ERROR)
printf("操作失败\n");
break;
case 13:
if (ListInver(&L)==OK)
printf("逆置成功!");
else
printf("逆置失败!");
break;
case 14:
if (ListStatis(&L)==OK)
printf("偶数个数":%d,c);
else
printf("操作失败\n");
break;
case 15:if (Add(L) == OK)
Add(L);
else
printf("加和失败!\n");
break;
default :printf("输入功能序号有误\n");
}
getchar();
getchar();
}
while (choice!=0);
}