王道p18第三题删除顺序表中所有值为x的元素

#define _CRT_SECURE_NO_WARNINGS
#include
using namespace std;
const int N=100;
//删除顺序表中所有值为x的元素
typedef struct
{
    int  data[N];
    int n;//长度
}sqlist;
bool delete_all_x(sqlist& L, int &n,int x)
{

    if (L.n == 0) return false;
    int i = 0, j = 0;
    for (i,j; i < L.n; i++)//i不管怎样都要移动,而j只在当前元素不为x时才移动
    {
        if (L.data[i] != x) {
            L.data[j] = L.data[i];
            j++;
        }
    
    }
    L.n = j;
    return true;
}
int main()
{
    sqlist L;
    cout << "链表长度?" << endl;
    cin >> L.n;

    for (int i = 0; i < L.n; i++)
    {
        cout << "请输入第" <         cin >> L.data[i];
    }
    cout << "你要删除的元素是?" << endl;
    int x;
    cin >> x;
    cout << "删除前的序列" << endl;
    for (int i = 0; i < L.n; i++) cout << L.data[i] << ' ';
    delete_all_x(L, L.n, x);
    cout << endl;
    cout << "删除后的序列" << endl;
    for (int i = 0; i < L.n; i++) cout << L.data[i]<<' ';
    return 0;
}

你可能感兴趣的:(王道习题,数据结构)