libdo

Untitled

Oct 9th, 2017
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. typedef struct element {
  5. int info;
  6. struct element *next;
  7. struct element *prev;
  8. } termen;
  9. class doublelist {
  10. private :
  11. int length;
  12. termen *start,*current,*finalist;
  13. int isempty()
  14. {
  15. return (length==0);
  16. }
  17. public :
  18. doublelist() { length=0; }
  19. int showlenght() {int value=length;cout<<endl<<value;}
  20. int addLIFO(int value) {
  21.  
  22. if (isempty()) {
  23. element *new_one=new element;
  24. if (new_one!=NULL)
  25. {
  26. new_one->info=value;
  27. new_one->next=NULL;
  28. new_one->prev=NULL;
  29. length=1;
  30. start=current=finalist=new_one;
  31. }
  32. return 0;
  33. }
  34. element *new_one=new element;
  35. if (new_one!=NULL) {
  36. new_one->info=value;
  37. new_one->next=NULL;
  38. new_one->prev=finalist;
  39. length++;
  40. finalist->next=new_one;
  41. finalist=new_one;
  42. }
  43. return 1;
  44. }
  45. int delLIFO(int *oldtop);
  46. int printLIST(int direction)
  47. {
  48.  
  49. if(direction)
  50. {
  51. cout<<endl;
  52. if (!isempty())
  53. {
  54. element *carrier;
  55. carrier=start;
  56. while (carrier!=NULL) {
  57. cout<<carrier->info<<" ";
  58. carrier=carrier->next;
  59. }
  60.  
  61. return 1;}
  62. return 0;
  63. }
  64. else
  65. {
  66. cout<<endl;
  67. if (!isempty())
  68. {
  69. element *carrier;
  70. carrier=finalist;
  71. while (carrier!=NULL) {
  72. cout<<carrier->info<<" ";
  73. carrier=carrier->prev;
  74. }
  75.  
  76. return 1;}
  77. return 0;
  78. }
  79. }
  80. protected :
  81. } somelist;
  82.  
  83.  
  84.  
  85. int main()
  86. {
  87. for(int i=1;i<=10;i++) somelist.addLIFO(i);
  88. somelist.printLIST(1);
  89. somelist.printLIST(0);
  90. }
Add Comment
Please, Sign In to add comment