Oпашката е линейна структура от данни. Работи на принципа FIFO (First-In First-Out), тоест първи влязъл – първи излязъл. Можем да добавяме елементи само в края на опашката и да изваждаме само от началото. За пример можем да вземем опашката на магазина, когато се наредите последни на опашката, то последни и ще излезете, съответно първият, влязъл в опашката, излиза първи. Принципът е същият.
За работа с опашки е необходимо да добавите библиотеката <strong>queue</strong>:
- #include <queue>
Декларирането на опашка става по следния начин:
- //queue<тип_данни> име_на_опашката;
- queue<int> q;
Опашката поддържа следните функции:
-
- back() – връща стойността на последния елемент от опашката
- empty() – връща TRUE ако опашката няма елементи
- front() – връща стойноста на първия елемент от опашката
- pop() – премахва първия елемент от опашката
- push() – добавя елемент в края на опашката
- size() – връща броя елементи в опашката
Задача: Разгледайте и тествайте следната програма, показваща всички функции в действие:
- #include <iostream>
- #include <queue>
- using namespace std;
- int main()
- {
- queue<int> q;
- cout<<„Broi elementi:“<<q.size()<<endl;
- q.push(1);
- q.push(2);
- q.push(3);
- cout<<„Broi elementi:“<<q.size()<<endl;
- cout<<„Purviq element:“<<q.front()<<endl;
- cout<<„Posledniq element:“<<q.back()<<endl;
- q.pop();
- cout<<„Broi elementi:“<<q.size()<<endl;
Опашките намират широко приложение в програмирането. Много алгоритми, свързани с графи (като например BFS – Breadth First Search), използват опашки.
Автор: Мартин Михайлов