Задача 3. Спроектировать шаблон классов Queue (очередь), в котором должна быть реализована последовательность элементов, организованная по принципу FIFO – First In First Out. Очередь должна быть предназначена для хранения элементов произвольного типа. Размеры очереди неограничены, должен быть реализован связный метод хранения элементов (см. теоретические сведения).
В шаблоне классов должны быть реализованы следующие функции:
1. bool Empty () – возвращает true, если очередь пуста, false – в противном случае;
2. unsigned int Size () – возвращает число элементов очереди (если очередь испорчена, возвращает 0);
3. T& Front () – возвращает элемент с начала очереди (но не удаляет его из очереди). В случае, если очередь пуста, выдавать соответствующее сообщение;
4. void Push (const T& NewEl) – помещает новый элемент в конец очереди;
5. void Pop () – удаляет (но не возвращает) элемент из вершины очереди. В случае, если очередь пуста, выдавать соответствующее сообщение;
6. void Clear () – очищает всю очередь (то есть удаляет все элементы очереди).

Структура связного списка в C++
Написать программу, демонстрирующую работу с очередью (использующую все ее функции).
Для хранения элементов очереди можно использовать структуру node, преобразовав ее в шаблон (шаблоны структур создаются так же, как и шаблоны классов). В классе Queue придется хранить указатель на конец очереди (добавлять элементы придется в конец очереди) и указатель на начало очереди (элементы считываются и удаляются с начала очереди).
В отчете должны быть: тема, цель, задание, листинг программы (с указанием файла, в котором находится текст программы), выводы.
Любому массовому мероприятию необходимы будут туалетные кабинки в аренду для удобства посетителей.






