БЕСПЛАТНОЕ РЕШЕНИЕ ЗАДАЧ

Очереди в С++

Очередь — частный случай однонаправленного списка, добавление элементов в который выполняется в один конец, а выборка — из другого конца. Другие операции с очередью не определены. При выборке элемент исключается из очереди. Говорят, что очередь реализует принцип обслуживания FIFO (first in — first out, первым пришел — первым ушел). В программировании очереди применяются, например при моделировании, диспетчеризации задач операционной системой, буферизованном вводе/выводе.

Пример. Программа формирует очередь из пяти целых чисел и выводит ее на экран. Функция помещения в конец очереди называется add, а выборки — del. Указатель на начало очередь называется pbeg, указатель на конец — pend.
#include 
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 << deU&pbeg) << ' ';
return 0;
}
// ----------------------------
// Начальное формирование очереди
Node * first(int d){
Node *pv = new Node;
pv->d = d;
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

Оставить комментарий

Вы должны быть авторизованы , чтобы оставить или оценить комментарий.

Онлайн всего: 2
Гостей: 2
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте