Little_hobbit

Очередь - массив

Jun 26th, 2020
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.83 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. #define NMAX 100
  4.  
  5. using namespace std;
  6.  
  7. struct Queue
  8. {
  9.     int array[NMAX];
  10.     int head, tail;
  11. };
  12.  
  13. // Инициализация очереди
  14. void Init(Queue &q)
  15. {
  16.     q.head = 0;
  17.     q.tail = 0;
  18. }
  19.  
  20. // Занесение элемента в очередь
  21. void PutQ(Queue &q, int data)
  22. {
  23.     int oldTail = q.tail;
  24.     q.tail += 1;
  25.  
  26.     if (q.tail == NMAX) q.tail = 0;
  27.     if (q.tail == q.head)
  28.     {
  29.         cout << "Queue is full" << endl;
  30.     }
  31.  
  32.     q.array[oldTail] = data;
  33. }
  34.  
  35. // Извлечение элемента из начала очереди
  36. int GetQ(Queue &q)
  37. {
  38.     int ans = q.array[q.head];
  39.     q.head++;
  40.     if (q.head == NMAX) q.head = 0;
  41.    
  42.     return ans;
  43. }
  44.  
  45. // Проверка на пустоту
  46. int Empry(Queue q)
  47. {
  48.     return q.head == q.tail;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment