Advertisement
Lucky134Lucky

Untitled

Mar 15th, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.40 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. class Deque{
  5. public:
  6.  
  7. Deque(int size){
  8. deque = new int[size*2];
  9. first=last=(deque+size);
  10. _size=size;
  11. }
  12.  
  13. void unshift(int value){
  14. if(count<_size){
  15. if(count==0){
  16. count++;
  17. *first = value;
  18. }
  19. else{
  20. count++;
  21. first--;
  22. *first=value;
  23. }
  24. } else cout<<"Queue is full"<<endl;
  25. }
  26. int shift(){
  27. if(count==0){
  28. return 0;
  29. }
  30. else{
  31. count--;
  32. value = *first;
  33. first++;
  34. return value;
  35. }
  36. }
  37.  
  38. void push(int value){
  39. if(count<_size){
  40. if(count==0){
  41. count++;
  42. *last = value;
  43. }
  44. else{
  45. last++;
  46. count++;
  47. *last=value;
  48. }
  49. } else cout<<"Queue is full"<< endl;
  50. }
  51.  
  52. int pop(){
  53. if(count==0){
  54. return 0;
  55. }
  56. else{
  57. count--;
  58. value = *last;
  59. last--;
  60. return value;
  61. }
  62. }
  63.  
  64. void showDeque(){
  65.  
  66. if(count == 0){
  67. cout<<"pust";
  68. }
  69. else
  70. for(int* i = first; i<=last;i++){
  71. cout<<*i<<' ';
  72. }
  73. }
  74.  
  75.  
  76. ~Deque(){
  77. delete deque;
  78. }
  79. private:
  80. int _size;
  81. int* deque;
  82. int value;
  83. int* first = 0;
  84. int* last = 0;
  85. int count = 0;
  86. };
  87. int main()
  88. {
  89. Deque d(3);
  90. int x;
  91. int value;
  92. int position;
  93.  
  94. cout << "1 dlya vstaski v nachalo" << endl
  95. << "2 dlya vzyatiya s nachala" << endl
  96. << "3 dlya vstavki v konec" << endl
  97. << "4 dlya vzatia s konca" << endl
  98. << "0 dlya vihoda" << endl;
  99.  
  100. while (x !=0){
  101.  
  102. cout<<endl<<"Vvedi nomer ";
  103. cin>>x;
  104. switch(x){
  105. case 1: cout << "vvedi chislo ";
  106. cin >> value;
  107. d.unshift(value); break;
  108. case 2: cout<<d.shift()<<endl;break;
  109.  
  110. case 3: cout << "vvedi chislo ";
  111. cin >> value;
  112. d.push(value); break;
  113.  
  114. case 4: cout<<d.pop()<<endl;break;
  115.  
  116.  
  117. }
  118. cout << "Spisok seychas: "; d.showDeque();
  119.  
  120. }
  121.  
  122. return 0;
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement