Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- class elementD{ private: int info;
- class elementD *next;
- class elementD *prev;
- public: elementD(){ next=NULL;}
- ~elementD(){ };
- int set_value(int this_value){ info=this_value; }
- int set_next(elementD *next_element){ next=next_element; }
- elementD *reveal_next(){ return next; }
- elementD *reveal_prev(){ return prev; }
- int reveal_value(){ return info; }
- };
- class some_listD{ private: elementD *start,*current,*last;
- int lenght;
- public: some_listD(){ start=current=last=NULL;lenght=0; }
- int set_lenght(int new_lenght){ lenght=new_lenght; }
- int set_start(elementD *new_start){ start=new_start; }
- int set_current(elementD *new_c){ current=new_c; }
- int set_end(elementD *new_l){ last=new_l; }
- elementD *reveal_start(){ return start; }
- elementD *reveal_current(){ return current; }
- elementD *reveal_end(){ return last; }
- int reveal_lenght(){ return lenght; }
- int reveal_me(int direction){
- cout<<endl; cout<<" START : ";
- int counter=reveal_lenght();
- if ( direction==0) {
- elementD *walker=start;
- if (counter>=1){while(counter>=2){
- cout<<walker->reveal_value()<<" -> ";
- counter--;}
- cout<<walker->reveal_value();} cout<<" : STOP ";
- return 1;
- }
- elementD *walker=reveal_end();
- if (counter>=1){while(counter>=2){
- cout<<walker->reveal_value()<<" -> ";
- walker=walker->reveal_prev();counter--;}
- cout<<walker->reveal_value();} cout<<" : STOP ";
- return 1;}
- };
- class no_strategyD:public some_listD
- {
- public :
- int find_value(int this_value);
- int addsome ( int value, int direction );
- int delsome ( int *old_value,int direction );
- };
- no_strategyD L;
- int main(){
- L.addsome(1,1);
- L.addsome(2,1);
- L.addsome(3,1);
- L.some_listD::reveal_me(0); // 1 2 3
- //L.some_listD::reveal_me(1); // 3 2 1
- return 0;
- }
- int no_strategyD::addsome ( int value, int direction )
- {
- if (reveal_lenght()==0) {
- elementD *new_one;
- new_one->set_value(value);
- new_one->set_next(NULL);
- set_lenght(1);
- set_current(new_one);
- set_start(new_one);
- set_end(new_one);
- return -1;
- }
- if (direction==0) {
- return 1;
- }
- cout<<"To be done !"<<endl;
- // (1)
- elementD *new_one;
- // (2)
- new_one->set_next(NULL);
- // (3)
- new_one->set_value(value);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement