Advertisement
evgenko

Untitled

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