Advertisement
PROFESSOR_AIH

QUEUE

Mar 13th, 2023
699
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.40 KB | None | 0 0
  1. //           * * Bismillahir Rahmanir Rahim  * *
  2. // ************************@Author*******************************
  3. /*                    Asik Ifthaker Hamim                       */
  4. #include <bits/stdc++.h>
  5. #include<stdlib.h>
  6. using namespace std;
  7. typedef long long ll;
  8. typedef unsigned long long int ulli;
  9. typedef long long int lli;
  10. typedef unsigned long long ull;
  11. typedef vector<int> vi;
  12. typedef vector<ll> vl;
  13. typedef vector<string> vs;
  14. typedef pair<ll,ll> pr;
  15. #define pb push_back
  16. #define sz(n) n.size()
  17. #define vs(n) (int)n.size()
  18. #define pp pop_back
  19. #define sp(n) setprecision(n)
  20. const int MOD = 1000000007;
  21. #define ffor(a, b) for (int i = a; i <b; i++)
  22. #define frev(b, a) for (int i = b; i >= a; i--)
  23. #define PI (acos(-1.0))
  24. #define torad(x) ((x)*((2*acos(0))/180.0))
  25. #define todeg(x) ((x)*(180.0/(2*acos(0))))
  26. #define fixAngle(x) ((x)>1?1:(x)<-1?-1:(x))
  27. #define tan(a) tan(a)/(pi/180)
  28. #define sin(a) sin(a)/(pi/180)
  29. #define cos(a) cos(a)/(pi/180)
  30. #define inverse_sin(a) asin(a)/(pi/180)
  31. #define inverse_cos(a) acos(a)/(pi/180)
  32. #define inverse_tan(a) atan(a)/(pi/180)
  33. const int dr4[] = {0, 1, 0, -1};
  34. const int dc4[] = {1, 0, -1, 0};
  35. const int dr8[] = {0, 1, 1, 1, 0, -1, -1, -1};
  36. const int dc8[] = {1, 1, 0, -1, -1, -1, 0, 1};
  37. using namespace std;
  38. double neg_infinity(-std::numeric_limits<double>::infinity());
  39. template<typename T>
  40. class Queue{
  41.     T* obj;
  42.     int f;
  43.     int r;
  44.     int mSize;
  45.     int size;
  46.  
  47.     public:
  48.     Queue(int size){
  49.         mSize = size;
  50.         obj = new T[mSize];
  51.         f = -1;
  52.         r = 0;
  53.         this->size = 0;
  54.     }
  55.  
  56.     int getSize(){
  57.         return size;
  58.     }
  59.  
  60.     bool isEmpty(){
  61.         return size == 0;
  62.     }
  63.  
  64.     T front(){
  65.         if(f == -1){
  66.             cout<<"Queue is empty "<<endl;
  67.             return 0;
  68.         }
  69.         return obj[f];
  70.     }
  71.  
  72.     void push(T elem){
  73.             if(size == mSize){
  74.                 cout<<"Queue is full "<<endl;
  75.                 return;
  76.             }
  77.  
  78.             if(f == -1){
  79.                 f = 0;
  80.             }
  81.  
  82.             obj[r] = elem;
  83.             r++;
  84.             size++;
  85.     }
  86.  
  87.  
  88.     T pop(){
  89.         if(f== -1){
  90.             cout<<"Queue is empty "<<endl;
  91.             return 0;
  92.         }
  93.         T temp = obj[f];
  94.         for (int i = 0; i <size; i++) {
  95.                 obj[i] = obj[i + 1];
  96.         }
  97.         r--;
  98.         size--;
  99.         if(size == 0){
  100.             f = -1;
  101.             r = 0;
  102.         }
  103.         return temp;
  104.     }
  105. };
  106. int main()
  107. {
  108.     ios_base::sync_with_stdio(false);
  109.  
  110.     Queue<int>q1(5);
  111.     q1.push(5);
  112.     q1.push(6);
  113.     cout<<q1.front()<<endl;
  114.     q1.pop();
  115.     cout<<q1.front()<<endl;
  116.  
  117. }
  118.  
  119.  
  120.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement