Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.30 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement