Int menu () {
short key = -1;
cout << "1. Добавить элементы\n";
cout << "2. Просмотр стека\n";
cout << "3. Количество элементов в стеке\n";
cout << "0. Выход \n";
cout << "Индекс пункта: ";
cin >> key;
while (key<0 || key>3) {
cout << "Неверный ввод, выберите пункт заново: ";
cin >> key;
}
cout << "\n";
return key;
}
Очередь — структура данных с дисциплиной доступа к элементам «первый пришёл — первый вышел» (FIFO, First In — First Out). Добавление элемента (принято обозначать словом enqueue — поставить в очередь) возможно лишь в конец очереди, выборка — только из начала очереди (что принято называть словом dequeue — убрать из очереди), при этом выбранный элемент из очереди удаляется.
Основные функции для работы с очередями в С++:
queue <тип данных> qu;
qu.empty() – проверка на пустоту очереди
qu.size() – размер очереди
qu.front() – доступ к первому элементу
qu.back() – доступ к последнему элементу
qu.push() – вставка элемента
qu.pop() – удаление элемента
#include <iostream>
#include <queue>
#include <cstdlib>
using namespace std;
int menu ();
int main () {
setlocale (LC_ALL, "Russian");
queue <int> qu;
short br=0;
int element, i, num;
while (br!=1) {
short key = menu();
switch (key) {
case 1: cout << "\nВведите количество элементов, которое требуется добавить: ";
cin >> num;
cout << "Введите элементы: ";
for (i=0; i<num; i++) {
cin >> element;
qu.push(element);
}
cout << "\n\n";
system("pause");
system("cls");
break;
case 2: cout << "\nЭлементы очереди: ";
if (qu.empty()) cout << "Очередь пуста."; else
while (!qu.empty()) {
cout << " " << qu.front();
qu.pop();
}
cout << "\n\n";
system("pause");
system("cls");
break;
case 3: if (qu.empty())
cout << "\n\n*** Очередь пуста ***\n\n";
else
cout << "\n\nКоличество элементов в очереди: " << qu.size() << "\n\n";
system("pause");
system("cls");
break;
case 4: if (qu.empty())
cout << "\n\n*** Очередь пуста ***\n\n";
else {
cout << "\n\nПервый элемент очереди: " << qu.front() << "\n";
cout << "Последний элемент очереди: " << qu.back() << "\n\n";
}
system("pause");
system("cls");
break;
case 0: br=1; break;
}
}
return 0;
}