在任意位置删除数据
如下图 ,假如我们要删除任意一个位置pos的数据,我们就应该把原本放在这个位置以及它后面的数据全部向前移动。
假如我们要删除第二个位置的数据,(pos=2),我们就应该吧原本放在这个位置后面的数据都向前移动,即c原本在第三个位置,现在我们应把它移动到第二个位置也就是原本c的位置,d移动到c的位置,这样就完成了数据移动。
1.检查容量
2.平移数据
int end4 = pos+1;
while (end4<=s1->_size) {
s1->_data[end4-1 ] = s1->_data[end4];
++end4;
}
3.数据数量减一
//任意部位删除数据
void seqlisteraser(seqlist* s1, int pos) {
if (s1 == NULL||s1->_size==0)
return;
if (pos <s1->_size && pos>=0) {
int end4 = pos+1;
while (end4<=s1->_size) {
s1->_data[end4-1 ] = s1->_data[end4];
++end4;
}
--s1->_size;
}
}
如果有什么不对的地方 欢迎大家提出意见 😁