Advertisement
Infiniti_Inter

MyQueue 74(8)

May 21st, 2019
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.48 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4. #include <string>
  5. #include <algorithm>
  6. #include <stack>
  7. #include <queue>
  8. #include <list>
  9. #include <exception>
  10.  
  11. using namespace std;
  12.  
  13.  
  14. ifstream fin("input.txt");
  15.  
  16. template <class Item>
  17. class Queue
  18. {
  19.     struct Element
  20.     {
  21.         Item inf;
  22.         Element *next;
  23.         Element(Item x) : inf(x), next(0) {}
  24.     };
  25.     Element *head, *tail; //указатели на начало и конец очереди
  26. public:
  27.     Queue() : head(0), tail(0) {}
  28.     bool empty()//возвращает true, если очередь пуста, иначе false
  29.     {
  30.         return head == 0;
  31.     }
  32.     Item Get()
  33.     {
  34.         if (empty())
  35.             cout << "QueueException: get - queue empty";
  36.         else
  37.         {
  38.             Element *t = head;
  39.             Item i = t->inf;
  40.             head = t->next;
  41.             if (head == NULL)
  42.                 tail = NULL;
  43.             delete t;
  44.             return i;
  45.         }
  46.     }
  47.     void pop()
  48.     {
  49.         if (empty())
  50.             cout << "Queue is empty!!!!!!!!!!!\n\n\n";
  51.         Element *t = head;
  52.         head = head->next;
  53.         if (head == NULL)
  54.             tail = NULL;
  55.         delete t;
  56.     }
  57.     Item front()
  58.     {
  59.         return head->inf;
  60.     }
  61.     void push(Item data)
  62.     {
  63.         Element *t = tail;
  64.         tail = new Element(data);
  65.         if (!head)
  66.             head = tail;
  67.         else
  68.             t->next = tail;
  69.     }
  70. };
  71.  
  72. int main()
  73. {
  74.     /*
  75.     1 2 3 4 5 6
  76.     */
  77.     Queue<int> q;
  78.     while (fin.peek() != EOF)
  79.     {
  80.         int cur;
  81.         fin >> cur;
  82.         q.push(cur);
  83.         if (cur % 2 == 0)
  84.             q.push(cur);
  85.     }
  86.     while (!q.empty())
  87.     {
  88.         int cur = q.front();
  89.         q.pop();
  90.         cout << cur << ' ';
  91.     }
  92.     cout << endl;
  93.  
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement