#include #define N 11 using namespace std; template class Queue { int front, rear; //индексы головы и хвоста Data data[N]; //массив для хранения элементов public: Queue () {front=0; rear=N-1;} int Empty (void); //проверка на пустоту int Full (void); //проверка на полноту заполнения //DataType Front (void); //неразрушающее чтение элемента void EnQueue (Data x); //добавление элемента в очередь Data DeQueue (void); //извлечение элемента из очереди }; template int Queue::Empty(void) { return (rear+1)%N == front; } template int Queue::Full(void) { return (rear+2)%N == front; } template void Queue ::EnQueue (Data x) { if (Full()) return ; rear = (rear+1)%N; data[rear] = x; return ; } template Data Queue::DeQueue (void) { int temp = front; front = (front+1)%N; return data[temp]; } int main() { setlocale(LC_ALL, "Russian"); Queue ClaChar; Queue ClaDouble; int i; double j; for (i=65; i<76; i++) ClaChar.EnQueue (i); cout<<" Класс char: "; while (!ClaChar.Empty()) cout<