Advertisement
evgenko

Untitled

Jun 15th, 2016
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.46 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. void clear_array(int* array_of_elements,int razmer)
  5. {
  6.     for (int i=0;i<razmer; i++)
  7.         array_of_elements[i]=0;
  8. }
  9. void unshift(int* array_of_elements,int razmer,int& ukazatel_unshift,int& ukazatel_shift,int& ukazatel_push,int new_element,bool& vse_zapolnino)
  10. {
  11.         if ((ukazatel_unshift==ukazatel_push)&&(ukazatel_unshift==0))
  12.         {
  13.             array_of_elements[ukazatel_unshift]=new_element;
  14.             ukazatel_unshift++;
  15.             ukazatel_push=razmer-1;
  16.             return;
  17.         }
  18.         if ((ukazatel_unshift<razmer)&&(ukazatel_unshift!=ukazatel_push+1))
  19.         {
  20.             array_of_elements[ukazatel_unshift]=new_element;
  21.             ukazatel_shift=ukazatel_unshift;
  22.             ukazatel_unshift++;
  23.             return;
  24.         }
  25.         if ((ukazatel_unshift==ukazatel_push+1)||(ukazatel_unshift==razmer-1))
  26.             vse_zapolnino=true;
  27. }
  28. int shift(int*array_of_elements,int razmer,int& ukazatel_shift,int ukazatel_push)
  29. {
  30.     if (ukazatel_shift!=ukazatel_push)
  31.     {
  32.         if (ukazatel_shift!=0)
  33.         {
  34.             ukazatel_shift--;
  35.             return array_of_elements[ukazatel_shift+1];
  36.         }
  37.         if (ukazatel_shift==0)
  38.         {
  39.             ukazatel_shift=razmer-1;
  40.             return array_of_elements[0];
  41.         }
  42.     }
  43.     if (ukazatel_shift==ukazatel_push)
  44.     {
  45.         if (ukazatel_push!=razmer-1)
  46.             return array_of_elements[ukazatel_push+1];
  47.         else
  48.             return array_of_elements[0];
  49.     }
  50. }
  51.  
  52. void push(int* array_of_elements,int razmer,int& ukazatel_push,int& ukazatel_pop,int& ukazatel_unshift,int new_element,bool& vse_zapolnino)
  53. {
  54.         if ((ukazatel_unshift==ukazatel_push)&&(ukazatel_unshift==0))
  55.         {
  56.             array_of_elements[ukazatel_push]=new_element;
  57.             ukazatel_unshift++;
  58.             ukazatel_push=razmer-1;
  59.             return;
  60.         }
  61.         if (ukazatel_push!=ukazatel_unshift-1)
  62.         {
  63.             array_of_elements[ukazatel_push]=new_element;
  64.             ukazatel_pop=ukazatel_push;
  65.             ukazatel_push--;
  66.             return;
  67.         }
  68.         if ((ukazatel_push==ukazatel_unshift-1)||(ukazatel_push==0))
  69.             vse_zapolnino=true;
  70.  
  71. }
  72. int pop(int* array_of_elements,int razmer,int& ukazatel_pop,int ukazatel_unshift)
  73. {
  74.     if (ukazatel_pop!=ukazatel_unshift)
  75.     {
  76.         if (ukazatel_pop!=razmer-1)
  77.         {
  78.             ukazatel_pop++;
  79.             return array_of_elements[ukazatel_pop-1];
  80.         }
  81.         if (ukazatel_pop==razmer-1)
  82.         {
  83.             ukazatel_pop=0;
  84.             return array_of_elements[razmer-1];
  85.         }
  86.     }
  87.     if (ukazatel_pop==ukazatel_unshift)
  88.     {
  89.         if (ukazatel_pop!=0)
  90.             return array_of_elements[ukazatel_unshift-1];
  91.         if (ukazatel_pop==0)
  92.             return array_of_elements[razmer-1];
  93.     }
  94. }
  95.  
  96.  
  97. int main()
  98. {
  99.     int array_of_elements[10];
  100.     int ukazatel_unshift=0;
  101.     int ukazatel_shift=0;
  102.     int ukazatel_push=0;
  103.     int ukazatel_pop=0;
  104.     bool vse_zapolnino = false;
  105.     int k=0;
  106.     clear_array(array_of_elements,10);
  107.     while (k!=1)
  108.     {
  109.         int c;
  110.         int b;
  111.         cin >> b;
  112.         if(vse_zapolnino==false)
  113.         {
  114.             if (b==1)
  115.             {
  116.                 cout << "unshift: ";
  117.                 cin >> c;
  118.                 unshift(array_of_elements,10,ukazatel_unshift,ukazatel_shift,ukazatel_push,c,vse_zapolnino);
  119.             }
  120.             if (b==3)
  121.             {
  122.                 cout << "push: ";
  123.                 cin >> c;
  124.                 push(array_of_elements,10,ukazatel_push,ukazatel_pop,ukazatel_unshift,c,vse_zapolnino);
  125.             }
  126.         }
  127.         else
  128.         {
  129.             cout << "function 1 and 3 nedostupna " << endl;
  130.             ukazatel_unshift=11;
  131.             ukazatel_push=11;
  132.         }
  133.         if (b==0)
  134.         {
  135.             cout << "shift: " << shift(array_of_elements,10,ukazatel_shift,ukazatel_push) << endl;
  136.         }
  137.         if (b==2)
  138.         {
  139.             cout << "pop: " << pop(array_of_elements,10,ukazatel_pop,ukazatel_unshift) << endl;
  140.         }
  141.         //for (int i=0;i<10;i++)
  142.         //cout<<array_of_elements[i]<<"  ";
  143.         //cout<<"UK POP:  "<<ukazatel_pop<<"  UK SHIFT: "<<ukazatel_shift<<"  UK PUSH: "<< ukazatel_push<<"  UK UNSHIFT: "<<ukazatel_unshift<< endl;
  144.         // cout << "Ukazatel Shift: " << ukazatel_shift << endl;
  145.         // cout << "Ukazatel Shift: " << ukazatel_pop << endl;
  146.     }
  147. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement