你的点赞评论就是对博主最大的鼓励
当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~
🍊自我介绍
Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾” 和“内容共创官” ,现在我来为大家介绍一下有关物联网-嵌入式方面的内容。
🍊删除
给一个顺序表buf[10] = {10,20,30,40,50,30,60,30,90,66};如果要删除所有的元素30,后面的元素往前移,你会想到什么方法呢?
删除(之一)的操作思路如下:
1. 我们先定义一个i,一个j ;最初让它们都指向表头位置
2. 通过 i 遍历数组所有的元素,遍历过程中,如果buf[i] != 30,就执行buf[j] = buf[i],j++.
int delete_data_seqlist(seqlist_t *l,datatype_t data)
{
int i,j;
if(is_empty_seqlist(l))//若是顺序表为空,不能删除
{
return -1;
}
for(i = 0;i < l->n;i++)//删除对应的数据
{
if(l->buf[i] != data)
{
l->buf[j] = l->buf[i];
j++;
}
}
//更新n的值
l-n = j;
//判断删除的数据是否存在
if(i == j)//如果没有要删除的元素,最后i和j的值是相等的
{
return -2;
}
else
{
printf("delete %d is successful!\n",data);
}
return 0;
}
🍊判空
int is_empty_sewlist()
{
return l->n ==0 ? 1 : 0;
]