Vla_DOS

lab Черга

Jun 10th, 2022
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.80 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. const int N = 4; //розмір черги
  4. struct Queue
  5. {
  6.     int data[N]; //масив даних
  7.     int last; //вказівник на початок
  8. };
  9. void Creation(Queue* Q) //створення черги
  10. {
  11.     Q->last = 0;
  12. }
  13. bool IsFull(Queue* Q) //перевірка на постоту
  14. {
  15.     if (Q->last == 0) return true;
  16.     else return false;
  17. }
  18. void Add(Queue* Q) //додавання
  19. {
  20.     if (Q->last == N)
  21.     {
  22.         cout << "\nЧерга заповнена\n\n"; return;
  23.     }
  24.     int value;
  25.     cout << "\nЗначення: ";
  26.     cin >> value;
  27.     Q->data[Q->last++] = value;
  28.     cout << endl << "Елемент додано в чергу\n\n";
  29. }
  30. void Delete(Queue* Q) //видалення
  31. {
  32.     for (int i = 0; i < Q->last && i < N; i++)
  33.         Q->data[i] = Q->data[i + 1]; Q->last--;
  34. }
  35.  
  36. int Size(Queue* Q) // Розмір черги
  37. {
  38.     return Q->last;
  39. }
  40. void main()
  41. {
  42.     setlocale(0, "");
  43.     Queue Q;
  44.     Creation(&Q);
  45.     char number;
  46.  
  47.     do
  48.     {
  49.         cout << "1. Додати елемент" << endl;
  50.         cout << "2. Видалити елемент" << endl;
  51.         cout << "3. Дізнатись розмiр черги" << endl;
  52.         cout << "0. Вийти\n\n";
  53.         cout << "Виберiть команду: ";
  54.         cin >> number;
  55.         switch (number)
  56.         {
  57.         case '1': Add(&Q);
  58.             break;
  59.         case '2':
  60.             if (IsFull(&Q))
  61.                 cout << endl << "Черга порожня\n\n";
  62.             else
  63.             {
  64.                 Delete(&Q);
  65.                 cout << endl << "Елемент видалено з черги\n\n";
  66.             } break;
  67.         case '3':
  68.             if (IsFull(&Q))
  69.                 cout << endl << "Черга порожня\n\n";
  70.             else
  71.                 cout << "\nРазмір черги: " << Size(&Q) << "\n\n";
  72.             break;
  73.         case '0': break;
  74.         default:
  75.             cout << endl << "Вихiд\n\n";
  76.             break;
  77.         }
  78.     } while (number != '0');
  79.     system("pause");
  80. }
Advertisement
Add Comment
Please, Sign In to add comment