Код очереди:
class queue
{
private:
int head, tail; // начальный и конечный индексы
int q[10]; // очередь из десяти элементов
public:
queue() : head(0),tail(0) // конструктор
{}
void enqueue(int number) // добавление в очередь
{
q[tail] = number;
tail = (tail+1) % 10;
}
int dequeue () // удаление из очереди
{
int temp = q[head];
head = (head+1) % 10;
return temp;
}
};
Не понимаю: Зачем переносить последний элемент в начало?
(Автор кода говорит, так положено во всех очередях)