顺序表的删除与插入

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;
    }
}

你可能感兴趣的:(算法)