已知一个整数线性表采用顺序表L存储。设计一个尽可能高效的算法删除其中所有值为负整数的元素(假设L中值为负整数的元素可能有多个)。
遍历数组,将不是负数的值复制到数组从0开始的位置即可。
typedef struct _seqlist
{
int data[1000];
int len;
}seqlist;
seqlist s;
void remove()
{
int n=0;
for(int i=0;i<s.len;i++)
{
if(s.data[i] >= 0)
s.data[n++] = s.data[i];
}
s.len = n;
}
这个问题相当于不一个数组里面的负数都排除,还要使数据都挨在一起,是这么个意思吧
大兄弟啊,顺序表存储啊,我提供一个思路:
最高效的方法我觉得如下:
定义另一个数组,在for循环中,挨个读取顺序表,是非负数就存入新数组中,是负数的话,就读下一个,如此循环
^o^高效简单吧,快给我个赞吧,大兄弟