1. 程式人生 > >【原創】queue佇列小結

【原創】queue佇列小結

一、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的升級版:優先佇列。它的用處可大多了!

在學習堆排序的時候,曾經提及過一次優先佇列,點“”檢視。

當然,我還需要系統地講講優先佇列,(這個坑我確實填了)。