#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
#define N 40001
typedef int DataType;
typedef struct
{
DataType a[N];
DataType a_lenth;
}Linelist;
int main()
{
Linelist L;
// 给数组存数据
cin >> L.a_lenth;
for (int i = 0; i < L.a_lenth; i++) cin >> L.a[i];
// 实现将顺序表中所有的零移动到顺序表前面
int p_zero = -1; // 定位数字0的位置
for (int i = 0; i < L.a_lenth; i++)
// 检测零
if(L.a[i] == 0){
// 将零移动到顺序表前面
for (int j = i - 1, temp = 0; j > p_zero; j--){
temp = L.a[j + 1];
L.a[j + 1] = L.a[j];
L.a[j] = temp;
}
//将零的定位后移
p_zero++;
}
// 输出顺序表
for (int i = 0; i < L.a_lenth; i++) cout << L.a[i] << ' ';
return 0;
}
假定数组A[n]中有多个零元素,编写一个算法,将A中所有的非零元素依次移到数组A的前端A[i](0 <= i <= n - 1)。
于 2023-09-19 23:25:10 首次发布