那么就先写写看吧:
1.如何由已知的内容查找到"数据元素"所在的位置?
那么首先是
int search_data(sequenlist *l,datatype x){
int i=0;
接下来就是循环判断
while((i<(*l).last)&&x.age!=(*l).data[i].age){
i++;
}
然后是对结果的判断
if(x.age==(*l).data[i].age){
return (i+1);
}
else{
return (NULL);
}
}
ps:可能会有重复的元素,按情况修改函数类型和返回类型即可-2020.12.27
ez,按照弗洛特的宣讲,只需要稍微改变一下判断即可,如果想寻找其他的,只需要把其他的做出相应替换即可。
下来是另一个问题:
2.如上所述,如何使这个"数据元素"消失,而不改变原有序列?
应该和昨天的删除差不多
int delete_data(sequenlist *l,datatype x){
那么,先是一层循环
for(int i=0;i<(*l).last;i++){
在其中加入昨天的,首先依旧是判断
if((*l).data[i]==x){
但是这里,有一点要变化,因为i是从0开始计数的,所以无需-1
for(int j=i;j<(*l).last;j++)
(*l).data[j]=(*l).data[j+1];
(*l).last--;
}
}
return 1;
}
ps:这个按数值删除的算法是错的,正确的是下面那个,这个用来当一个例子
"那么就来测试一下吧",我说到。随着一阵一零闪动,最后又消失了"。奇怪,沐露,帮我康康哪里出错了","让我康康...嗯,你没有发现问题吗?","?","?","...如果下一个附属国和当前判断的附属国一致呢?在检测完后,巡查使j就不会再回去了哦~,是会继续往后的,所以:
int delete_data(sequenlist *l,datatype x){
for(int i=0;i<(*l).last;){
if((*l).data[i]==x){
for(int j=i;j<(*l).last;j++)
(*l).data[j]=(*l).data[j+1];
(*l).last--;
search(*l);
那么需要在这里,修改术式
continue;
}
自增写在这里
i++;
}
return 1;
}
ps:可自行修改返回类型来确认是否删除成功以及其他-2020.12.27
这样就不会有问题了","妙啊","毕竟这么简单不是吗?","..."。
(晚饭time),"明天见,因特先生!","祝你做个好梦,明天见!",洛特先生回到。
(回到房间),那么,明天就把两个术式的解析卖给别的术士,这样钱的问题就解决了。
这些也一同记录下来吧。
(整理time)
以及很晚了呢,今天先记到这里吧 时间按照之前世界来算吧-2020/12/27
//接下来就是链表了
//至于总结先咕了吧XD
//这章的字数之后还会有增加