顺序表特定元素的删除

2.09

学习到两点:++i和i++的区别;

用一个从零起++的变量可优化二重循环;

//版权所有贾涛

#include <iostream>
#include<math.h>
#include<stdlib.h>
using namespace std;
class  List{
    int Maxsize,last;                            //last??????????????????��???��???0??
    int *data;
public:List(int size){Maxsize=size;              //??????
        last=-1;
        data=new int[Maxsize];
    }
    ~List(){delete[] data;}
    void input(){                                   //??????
        while(1){
            cout<<"????????????????��????????��??????"<<endl;
            cin>>last;
            if(last<=Maxsize) break;
        }
        cout<<"??????????????"<<endl;
        for(int i=0;i<=last;i++){
            cin>>data[i];
        }
    }
    void output(){                          //???????
        cout<<"???????????"<<endl;
        for(int i=0;i<last;i++){
            cout<<data[i]<<" ";
        }
        cout<<data[last]<<endl;
    }
    void Remove(int x) {              //?��?????????
        int n = last + 1;
        last = -1;
        for (int i = 0; i < n; i++) {
            if (data[i] <=x) {
                data[++last] = data[i];
            }
            }
    }
};
int main(){
    List l(1000);
    l.input();
    int  x;
    cout<<"????????????:"<<endl;
    cin>>x;
    l.Remove(x);
    l.output();
    return 0;
}

相关文章: