隊列是一種特殊的線性表,特殊之處在于它隻允許在表的前端(front)進行删除操作,而在表的後端(rear)進行插入操作,和棧一樣,隊列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行删除操作的端稱為隊頭。隊列中沒有元素時,稱為空隊列。
隊列的資料元素又稱為隊列元素。在隊列中插入一個隊列元素稱為入隊,從隊列中删除一個隊列元素稱為出隊。因為隊列隻允許在一端插入,在另一端删除,是以隻有最早進入隊列的元素才能最先從隊列中删除,故隊列又稱為先進先出(FIFO—first in first out)線性表。
如同排隊一樣,隊列是一種先入先出的資料結構
在STL實作了這一資料結構。
也相應的實作了隊列操作方法,看代碼了解的更加直覺
queue這個資料結構主要應用于廣度優先搜尋,優先隊列中,後續整理。
#include<iostream>
#include<queue>
using namespace std;
int main()
{
//初始化一個int泛型的隊列
queue<int> q;
int a[5] = {1,2,3,4,5};
//将資料壓入隊列
q.push(a[0]);
q.push(a[1]);
q.push(a[2]);
q.push(a[3]);
q.push(a[4]);
//輸出隊列元素個數
cout<<"元素個數為:"<<q.size()<<endl;
//判斷隊列是否為空
while(!q.empty())
{
//q.front()取隊頭元素
cout<<"取自隊頭=====》"<<q.front()<<endl;
//q.back()取隊尾元素
cout<<"取自隊尾=====》"<<q.back()<<endl;
//彈出隊頭元素
q.pop();
}
return 0;
}