美文网首页
6-2顺序表操作集

6-2顺序表操作集

作者: 动感新势力fan | 来源:发表于2018-05-16 14:43 被阅读10次
    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;
        }
    }
    
    

    相关文章

      网友评论

          本文标题:6-2顺序表操作集

          本文链接:https://www.haomeiwen.com/subject/yjvpdftx.html