Очередь – абстрактная структура данных, реализует принцип обслуживания FIFO. Это частный случай однонаправленного списка, добавление элементов в который выполняется в один конец, а выборка идет из другого конца. Таким образом, в структуре «очередь» определены две операции: добавление элементов и выборка. При выборке элемент из очереди исключается. В системном программировании очереди используются для диспетчеризации задач моделирования.
Пример 1

Пример программы, реализующей линейную очередь из пяти элементов, выводя их на экран

struct Node
{
int d;
Node *p;
}

Node *first(int d);
void add(Node **pend, int d);
int del(Node **pbeg);

int main()
{
Node *pbeg = first(1);
Node *pend = pbeg;
for(int i=2; i<6; i++) add (&pend, i);
while(pbeg)
cout<<del(&pbeg)<<" ";

return 0;
}

/* начальное формирование очереди*/
Node *first(ind d)
{
Node *pv = new Node;
pv -> d = 0;
pv -> p = 0;
return pv;
}

/* добавление в конец */
void add(Node **pend, int d)
{
Node *pv = new Node;
pv -> d = d;
pv -> p = 0;
(*pend) -> p = pv;
*pend = pv;

}

/* выборка */
int del(Node **pbeg)
{
int temp = (*pbeg) -> d;
Node *pv = *pbeg;
*pbeg = (*pbeg) -> p;
delete pv;
return temp;
}
результат работы: 1 2 3 4 5