顺序表插入和删除
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次循环,从后开始,判断条件不带等号

浙公网安备 33010602011771号