SHARE
TWEET

Untitled

a guest Oct 21st, 2019 111 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. class elementD{ private: int info;
  5.                        class elementD *next;
  6.                        class elementD *prev;
  7.  
  8.                        public:  elementD(){ next=NULL;}
  9.                                    ~elementD(){ };
  10.                        int set_value(int this_value){ info=this_value; }
  11.                        int set_next(elementD *next_element){ next=next_element; }
  12.                        elementD *reveal_next(){ return next; }
  13.                        elementD *reveal_prev(){ return prev; }
  14.                        int reveal_value(){ return info; }
  15.                        };
  16.  
  17. class some_listD{ private: elementD *start,*current,*last;
  18.                                        int lenght;
  19.  
  20.                          public: some_listD(){ start=current=last=NULL;lenght=0; }
  21.                          int set_lenght(int new_lenght){ lenght=new_lenght; }
  22.                          int set_start(elementD *new_start){ start=new_start; }
  23.                          int set_current(elementD *new_c){ current=new_c; }
  24.                          int set_end(elementD *new_l){ last=new_l; }
  25.  
  26.  
  27.                          elementD *reveal_start(){ return start; }
  28.                          elementD *reveal_current(){ return current; }
  29.                          elementD *reveal_end(){ return last; }
  30.                          int reveal_lenght(){ return lenght; }
  31.  
  32.                          int reveal_me(int direction){
  33.                          cout<<endl; cout<<" START : ";
  34.                          int counter=reveal_lenght();
  35.                          if ( direction==0) {
  36.                                                 elementD *walker=start;
  37.                                                 if (counter>=1){while(counter>=2){
  38.                                                         cout<<walker->reveal_value()<<" -> ";
  39.                                                         counter--;}
  40.                                                 cout<<walker->reveal_value();} cout<<" : STOP ";
  41.                                                 return 1;
  42.                                                    }
  43.                         elementD *walker=reveal_end();
  44.                         if (counter>=1){while(counter>=2){
  45.                                                 cout<<walker->reveal_value()<<" -> ";
  46.                                                 walker=walker->reveal_prev();counter--;}
  47.                                                 cout<<walker->reveal_value();} cout<<" : STOP ";
  48.                         return 1;}
  49.                         };
  50.  
  51. class no_strategyD:public some_listD
  52.                       {
  53.                       public :
  54.                       int  find_value(int this_value);
  55.                       int  addsome ( int value, int direction );
  56.                       int  delsome ( int *old_value,int direction );
  57.                       };
  58.  
  59. no_strategyD L;
  60.  
  61.  
  62. int main(){
  63.  
  64. L.addsome(1,1);
  65. L.addsome(2,1);
  66. L.addsome(3,1);
  67.  
  68. L.some_listD::reveal_me(0);  // 1 2 3
  69. //L.some_listD::reveal_me(1);  // 3 2 1
  70.  
  71.  
  72. return 0;
  73. }
  74.  
  75.  
  76. int  no_strategyD::addsome ( int value, int direction )
  77.                   {
  78.                        if (reveal_lenght()==0)  {
  79.                                                     elementD *new_one;
  80.                                                     new_one->set_value(value);
  81.                                                     new_one->set_next(NULL);
  82.                                                     set_lenght(1);
  83.                                                     set_current(new_one);
  84.                                                     set_start(new_one);
  85.                                                     set_end(new_one);
  86.                                                     return -1;
  87.                                                    }
  88.                       if (direction==0) {
  89.  
  90.                                                 return 1;
  91.                                                }
  92.                      cout<<"To be done !"<<endl;
  93.                      // (1)
  94.                      elementD *new_one;
  95.                      // (2)
  96.                      new_one->set_next(NULL);
  97.                      // (3)
  98.                      new_one->set_value(value);
  99.  
  100.  
  101.                      return 1;
  102.                       }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top