C STL 棧和佇列詳解

2021-08-20 23:09:12 字數 1589 閱讀 4216

一.解釋:

1.棧

結論:後進先出(last in first out),簡稱為lifo線性表。

舉個例子:你在洗碗把洗好的碗編號為1、

2、、、

n依次摞起來,

1號在最下面,向上編號依次增加,然後再從上到下把碗放好,這樣的話,先被洗的碗,就後被放好。

2.佇列

佇列(queue)也是一種運算受限的線性表,它的運算限制與棧不同,是兩頭都有限制,插入只能在表的一端進行(只進不出),而刪除只能在表的另一端進行(只出不進),允許刪除的一端稱為隊尾(rear),允許插入的一端稱為隊頭 (front),如圖所示:

結論:佇列的操作原則是先進先出的,所以佇列又稱作fifo表(first in first out)

舉個例子:超市付賬的時候排隊,先來的先排在最前面,後來的後排在隊伍最後面,付賬時排在隊伍前面的先付賬,排在後面的後付賬。

二.用法

1.標頭檔案

#include//

佇列 #include//

2.定義方式

stack  s;//

引數也是資料型別,這是棧的定義方式

queue q; //

引數是資料型別,這是佇列的定義方式

3.常用操作

棧:

s.empty()

//如果棧為空返回true,否則返回false  

s.size()//

返回棧中元素的個數  

s.pop()//

刪除棧頂元素但不返回其值  

s.top()//

返回棧頂的元素,但不刪除該元素  

s.push(x)//

在棧頂壓入新元素 ,引數x為要壓入的元素

佇列:

q.empty()

//如果隊列為空返回true,否則返回false

q.size() //

返回佇列中元素的個數

q.pop() //

刪除佇列首元素但不返回其值

q.front() //

返回隊首元素的值,但不刪除該元素

q.push(x) //

在隊尾壓入新元素 ,x為要壓入的元素

q.back() //

返回佇列尾元素的值,但不刪除該元素

三、例子

#include #include 

#include

#include

#include

#include

#include

using

namespace

std;

intmain()

C STL 棧和佇列詳解

一.解釋 1.棧 結論 後進先出 last in first out 簡稱為lifo線性表。舉個例子 你在洗碗把洗好的碗編號為1 2 n依次摞起來,1號在最下面,向上編號依次增加,然後再從上到下把碗放好,這樣的話,先被洗的碗,就後被放好。2.佇列 佇列 queue 也是一種運算受限的線性表,它的運算...

C STL 棧和佇列

結論 後進先出 last in first out 簡稱為lifo線性表。舉個例子 你在洗碗把洗好的碗編號為1 2 n依次摞起來,1號在最下面,向上編號依次增加,然後再從上到下把碗放好,這樣的話,先被洗的碗,就後被放好。2.佇列 佇列 queue 也是一種運算受限的線性表,它的運算限制與棧不同,是兩...

C STL 棧 佇列 優先佇列

棧 後進先出 last in first out lifo 標頭檔案 stack stack stack int s 棧的基本操作 s.empty 如果棧為空返回true,否則返回false s.size 返回棧中元素的個數 s.pop 刪除棧頂元素但不返回其值 s.top 返回棧頂的元素,但不刪除...