【原創】queue佇列小結
阿新 • • 發佈:2019-01-24
一、queue的基本概念
queue的中文名字叫做佇列。佇列是什麼呢?
相信大家都排過隊吧!
如下圖:
假設小紅球,小黃球,小藍球和小綠球這四個球去買票。小紅球先排隊,然後黃藍綠依次站在後面。那麼,誰會先買到票?(只要不插隊的話)肯定先進去的先出來。(當然有可能出口太小出不來)
這就是queue的策略:先進先出策略(First In First Out,簡稱FIFO)。
所以說,說白了,queue就是一個遵守FIFO策略的連結串列。
二、queue的標頭檔案
queue需要以下兩個標頭檔案:
#include<queue>
using namespace std;
三、queue的宣告與建構函式
queue宣告的基本結構是這樣的:
queue<資料結構>佇列名;
比如:
queue<int> i;
queue<double> d;
queue<node> n;//node是一個結構體
四、queue的基本操作
首先,我們queue<int> q;
q.size();//返回q裡元素個數
q.empty();//返回q是否為空,空則返回1,否則返回0
q.push(k);//在q的末尾插入k
q.pop();//刪掉q的第一個元素
q.front();//返回q的第一個元素
q.back();//返回q的末尾元素
示例:
queue的基本操作也就這麼多,看起來沒什麼好講的。但是,接下來我們要介紹的就是queue的升級版:優先佇列。它的用處可大多了!
在學習堆排序的時候,曾經提及過一次優先佇列,點“擊”檢視。
當然,我還需要系統地講講優先佇列,(這個坑我確實填了)。