Advertisement
evgenko

Untitled

Aug 24th, 2016
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.63 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. //UNSHIFT
  5. void f_unshift(int array_of_elements[],int size,int& head,int tail,int new_element)
  6. {
  7.     if (head==tail-1)
  8.         return;
  9.     if ((head==size-1)&&(tail==0))
  10.         return;
  11.     array_of_elements[head]=new_element;
  12.     if (head!=size-1)
  13.     {
  14.         head++;
  15.         return;
  16.     }
  17.     if (head==size-1)
  18.         head=0;
  19. }
  20. //SHIFT
  21. int f_shift(int array_of_elements[],int size,int& head,int tail)
  22. {
  23.     int b;
  24.     if (head==tail)
  25.         return 404;
  26.     if (head==0)
  27.     {
  28.         head=size-1;
  29.         b=array_of_elements[head];
  30.         array_of_elements[head]=0;
  31.         return b;
  32.     }
  33.     head--;
  34.     b=array_of_elements[head];
  35.     array_of_elements[head]=0;
  36.     return b;
  37. }
  38. //PUSH
  39. void f_push(int array_of_elements[],int size,int head,int& tail,int new_element)
  40. {
  41.     if (head==tail-1)
  42.         return;
  43.     if ((head==size-1)&&(tail==0))
  44.         return;
  45.     if (tail==0)
  46.     {
  47.         tail=size-1;
  48.         array_of_elements[tail]=new_element;
  49.         return;
  50.     }
  51.     tail--;
  52.     array_of_elements[tail]=new_element;
  53. }
  54. //POP
  55. int f_pop(int array_of_elements[],int size,int head,int& tail)
  56. {
  57.     int b;
  58.     if (head==tail)
  59.         return 404;
  60.     if (tail==size-1)
  61.     {
  62.         tail=0;
  63.         b=array_of_elements[size-1];
  64.         array_of_elements[size-1]=0;
  65.         return b;
  66.     }
  67.     tail++;
  68.     b=array_of_elements[tail-1];
  69.     array_of_elements[tail-1]=0;
  70.     return b;
  71. }
  72. // FOR TEST
  73. void f_clean_array(int array[],int size)
  74. {
  75.     for (int i=0;i<size;i++)
  76.         array[i]=0;
  77. }
  78. int main()
  79. {
  80.     int size = 10;
  81.     int array_of_elements[size];
  82.     f_clean_array(array_of_elements,size);
  83.     int head = 0;
  84.     int tail = 0;
  85.     int k = 0;
  86.     //TEST
  87.     cout << "UNSHIFT = 1" << endl << "SHIFT = 2" << endl << "PUSH = 3" << endl << "POP = 4" << endl;
  88.     while (k==0)
  89.     {
  90.         int a;
  91.         cin >> a;
  92.         if (a==1)
  93.         {
  94.             cout << "UNSHIFT : ";
  95.             int b;
  96.             cin >> b;
  97.             f_unshift(array_of_elements,10,head,tail,b);
  98.         }
  99.         if (a==2)
  100.             cout << "SHIFT : " << f_shift(array_of_elements,size,head,tail) << endl;
  101.         if (a==3)
  102.         {
  103.             cout << "PUSH: ";
  104.             int b;
  105.             cin >> b;
  106.             f_push(array_of_elements,size,head,tail,b);
  107.         }
  108.         if (a==4)
  109.             cout << "POP   : " << f_pop(array_of_elements,size,head,tail) << endl;
  110.         for (int i=0;i<size;i++)
  111.             cout << array_of_elements[i] << " ";
  112.         cout << endl << "HEAD : " << head << " TAIL : " << tail << endl;
  113.  
  114.     }
  115.     //TEST END
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement