堆疊,佇列,優先佇列

2021-09-22 07:54:27 字數 3272 閱讀 4882

包含標頭檔案:#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。

**實現:

包含標頭檔案:#include定義:priority_queuepq;

【特點】:相當於排序之後輸出:從大到小。在優先佇列中,沒有front()函式和back()函式。只能通top()函式來對隊首元素進行操作。

優先佇列的基本操作:

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...