顺序表插入和删除

bool SequencLists::Insert(int i,int e){
    if (i > this->length +1|| i < 1) {
        return;
    }
    for (int j = this->length; j >= i; j--) {//i是指的第i个位置,j是指的下标,若i=2,j=3,那么循环两次,后移两个数,所以一共移(length-i+1)个数
        this->data[j] = this->data[j - 1];//先后移
    }
    this->data[i - 1] = e;
    this->length++;
}
bool SequencLists::ListDelete(int i){
    if (i > this->length + 1 || i < 1) {
        return;
    }
    for (int j = i; j < -this->length; j++) {
        this->data[j - 1] = this->data[j];
    }
    this->length++;
    return this->data[i];
}

插入:表长len,位置i,经历len-i+1次循环,从后开始,判断条件带等号

删除:表长len,位置i,经历len-i次循环,从后开始,判断条件不带等号

posted @ 2022-06-03 17:20  dilligentblack  阅读(42)  评论(0)    收藏  举报