已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试写一算法,删除表中所有大于x且小于y的元素(若表中存在这样的元素)同时释放被删除结点空间。
#include<iostream>
#include<list>
using namespace std;
int main()
{
list<int> s;
list<int>::iterator i,j;
int x,y,z;
do
{ cin>>z;
s.push_back(z);
}while(getchar()!='\n');
cin>>x>>y;
for(i=s.begin();i!=s.end();i++)
{
if(*i<y&&*i>x)
{s.erase(i);
i--;}
}
for(j=s.begin();j!=s.end();j++)
{
cout<<*j;
}
return 0;
}