题目:单向链表的倒数第四个元素
程序:
#include<iostream>
#include<list>
#include<vector>
using namespace std;
class ite{
int p;
public:
int operator++();
ite& operator=(int a){p=a;return *this;}
int& v(){return p;}
int minus4();
};
class ring{
vector<int> store;
ite pointer;
public:
ring();
bool full(){return (store[0]&&store[1]&&store[2]&&store[3]);}
void add(int a){this->operator[](pointer)=a;++pointer;}
int last4(){pointer.minus4();return this->operator[](pointer);}
int& operator[](ite i){return i.v();}
};
int ite::operator++(){
if(p==3)return p=0;
return ++p;
}
int ite::minus4(){
if(p==3)return p=0;
return ++p;
}
ring::ring(){
for(int i=0;i<4;++i)store.push_back(0);
pointer=0;
}
int main(){
list<int> li;
int temp;
while(cin>>temp)li.push_back(temp);
ring ri;
for(list<int>::iterator i=li.begin();i!=li.end();++i){
ri.add(*i);
}
cout<<ri.last4();
char pause;
cin>>pause;
return 0;
}