包含標頭檔案:【特點】:先進後出。即:像瓶子一樣。先進來的資料在底部。#include
定義:stacks;
例:
輸入:1 2 3 4 5棧的基本操作:輸出:5 4 3 2 1
s.push(a):把元素a入棧。
s.pop():刪除棧頂元素。
s.top():返回棧頂元素,但不會刪除。
s.size():返回棧中元素個數。
s.empty():檢查棧是否為空。如果為空,返回true,否則返回false。
**實現:
#include
#include
//堆疊
using namespace std;
intmain()
cout <<
"s.size:"
<< s.
size()
<< endl;
return0;
}
包含標頭檔案:【特點】: 先進先出。即:像排隊一樣。只能對隊首和對尾元素進行操作。#include
定義:queueq;
例:
輸入:1 2 3 4 5佇列的基本操作:輸出:1 2 3 4 5
q.push(a):把元素a入隊。
q.pop():刪除隊首元素,但不返回值
q.front():返回隊首元素,但不會刪除。
q.back():返回隊尾元素,但不會刪除。
q.size():返回隊中元素個數。
q.empty():檢查佇列是否為空。如果為空,返回true,否則返回false。
**實現:
包含標頭檔案:【特點】:相當於排序之後輸出:從大到小。在優先佇列中,沒有front()函式和back()函式。只能通top()函式來對隊首元素進行操作。#include
定義:priority_queuepq;
優先佇列的基本操作:
pq.push(a):把元素a入隊。
pq.pop():刪除隊首元素。
pq.top():返回隊首元素,但不會刪除。
pq.size():返回優先佇列中元素個數。
pq.empty():檢查佇列是否為空。如果為空,返回true,否則返回false。
優先佇列是預設從大到小排序的;想要改變它的排序順序有兩個方法:
1.使用它自己的模板:
公升序:
priority_queue,greater> pq;
降序:
priority_queue,less> pq;
2.使用自定義排序:
struct cmp1};
struct cmp2
};
注意:對結構體型別的優先佇列:
priority_queuepq3;輸入資料:
node node1;
int n;
cin >> n;
for (int i = 0; i < n; i++)
結構體優先佇列自定義排序:
struct node
;struct cmp
};
完整**:
#include
#include
#include
#include
using namespace std;
struct cmp1};
struct cmp2};
struct node
;struct cmp};
intmain()
;for
(int i =
0; i <
5; i++
) cout <<
"pq預設優先佇列隊首元素:"
<< pq.
top(
)<< endl;
cout <<
"pq1公升序優先佇列隊首元素:"
<< pq1.
top(
)<< endl;
cout <<
"pq2降序優先佇列隊首元素:"
<< pq2.
top(
)<< endl;
cout <<
"預設:"
<< endl;
while
(pq.
empty()
!= true)
cout <<
"公升序:"
<< endl;
while
(pq1.
empty()
!= true)
cout <<
"降序:"
<< endl;
while
(pq2.
empty()
!= true)
cout <<
"結構體:"
語法 STL容器介面卡 佇列,優先佇列,堆,棧
deque在分段的連續記憶體空間維護其整體連續的假象 queue values 使用push函式,將元素新增到佇列中 values.push 3.2 values.push 9.8 values.push 5.4 cout popping from values 使用empty函式,判斷佇列是否為空...
利用優先順序佇列實現堆疊
因為優先順序佇列是一種用來維護由一組元素構成的集合s的資料結構,執行的操作包含 對於最大優先順序佇列 insert s,x 把元素x插入s,仍然保持最大優先順序佇列 maximum s 取得最大關鍵字的值,也就是優先順序最高的 extract max s 去的最大關鍵字的值並刪除,剔除優先順序最高的...
佇列以及優先佇列
1.佇列 佇列的定義 標頭檔案 include 佇列是一種先進先出的資料結構 佇列的宣告 queueq 宣告字元型別 queueq 宣告結構體型別 以及可以宣告一些自定義的型別 佇列的操作 入佇列 s.push x 出佇列 s.pop 返回佇列的資料數量 s.size 判斷佇列是否為空 s.empt...