早教吧 育儿知识 作业答案 考试题库 百科 知识分享

以顺序表为存储结构,写一算法,删除表中所有值为零的元素,将非0元移到前面来,各元素相对位置不变.尽量详细一点

题目详情
以顺序表为存储结构,写一算法,删除表中所有值为零的元素,将非0元移到前面来,各元素相对位置不变.
尽量详细一点
▼优质解答
答案和解析
以下是算法中的核心部分,因为不知道数据类型,请按注释的说明修改为自己的成员名
// length 为表长、data 为存放数据的顺序表数组
int i = 0,j;// i 标识当前有效元素位置
for (j = 0; j < length; ++ j)// j 为当前检查位置
{
if (data[j] != 0)// 不为0 时向i 位置复制
{
if (i < j)// 只有i、j 不相同时才复制
data[i] = data[j];
++ i;// 有效元素位置下标后移
}
}
length = i;// 修改表长