順序表的刪除與插入

int ListInsert(SeqList *L, int i, DataType x) {
    int j;
    if (L->size >= MaxSize) {
        printf("順序表已滿無法插入!\n");
        return 0;
    }
    else if (i<0 || i>L->size) {
        printf("參數i不合法!\n");
        return 0;
    }
    else {
        for (j = L->size; j > i; j--)
            L->list[j] = L->list[j - 1];//從後向前依次後移數據,爲插入做準備
        L->list[i] = x;
        L->size++;
        return 1;
    }
}

int ListInsert(SeqList *L, int i, DataType *x) {
    int j;
    if (L->size <= 0) {
        printf("順序表已空無數據元素可刪!\n");
        return 0;
    }
    else if (i<0 || i>L->size - 1) {
        printf("參數i不合法");
        return 0;
    }
    else {
        *x = L->list[i];  //保留刪除元素到x中
        for (j = i + 1; j <= L->size - 1; j++)
            L->list[j - 1] = L->list[j];
        L->size--;
        return 1;
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章