6-2顺序表操作集

List MakeEmpty(){
     List L;
     L = (List)malloc(sizeof(struct LNode));
     L->Last = -1;
     return L;
}

Position Find(List L, ElementType X){
    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 + 1 == MAXSIZE)
    {
      printf("FULL");
      return false;
    }
    if(P < 0 || P > (L->Last + 1)){
        printf("ILLEGAL POSITION");
        return false;
    }
    /*
    ElementType temp, nw = X;
    for(int i = P; i <= (L->Last + 1); i++){
        temp = L->Data[i];
        L->Data[i] = nw;
        nw = temp;
    }
    L->Last++;
    */
    for(int i = L->Last + 1;i > P;i--){  //从后面开始移动比较方便
          L->Data[i]=L->Data[i-1];
    }
    L->Data[P] = X;
    L->Last++;
    return true;
}
bool Delete(List L, Position P){
    if(P<0||P>L->Last){ //删除位置必须是[0,Last]之间
        printf("POSITION %d EMPTY",P);
        return false;
    }
    else{
        for(int i = P; i < L->Last; i++){
            L->Data[i] = L->Data[i+1];
        }
        L->Last--;
        return true;
    }
}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容