本题要求实现顺序表的操作集。
就不写题目要求什么的了,这道题之前就做过。。一会也放上代码,学了c++,再写c真别扭啊啊啊。注意插入和删除的位置合法判断即可,Last代表最后一个元素的位置,从样例也可以看出,下标从0开始,所以最大不能超过MAXSIZE-1
这次写的
List MakeEmpty(){
List list;
list = (List)malloc(sizeof(struct LNode));
list->Last = -1;
return list;
}
Position Find( List L, ElementType X ){
if(L==NULL)
return ERROR;
for(int i = 0;i<=L->Last;i++){
if(L->Data[i]==X)
return i;
}
return ERROR;
}
bool Insert( List L, ElementType X, Position P ){
if(L->Last==MAXSIZE-1){
printf("FULL");
return false;
}
if(P<0||P>L->Last+1){
printf("ILLEGAL POSITION");
return false;
}
int i;
for(int i = L->Last;i>=P;i--){
L->Data[i+1] = L->Data[i];
}
L->Data[P] = X;
L->Last++;
return true;
}
bool Delete( List L, Position P ){
if(L==NULL)
return false;
if(P<0||P>L->Last){
printf("POSITION %d EMPTY",P);
return false;
}
for(int i = P;i<L->Last;i++){
L->Data[i] = L->Data[i+1];
}
L->Last--;
return true;
}