顺序表的插入和删除
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]; }
顺序表的插入和删除实际上就是移位
要记住:
Insert():表长len,插入到第i个位置,移动(len-i+1)个元素,循环l(len-i)次
Dlete():表长len,删除到第i个位置,移动(len-i)个元素,循环l(len-i)次

浙公网安备 33010602011771号