C 學習 佇列 三

2021-09-13 20:38:11 字數 1930 閱讀 9406

佇列是一種先進先出(fifo)的資料結構,即從尾部(隊尾)進入,從頭部進入

使用push()函式進隊,push()函式會將元素插入到隊尾

#include #include #include 

using

namespace

std;

intmain

()

使用pop()函式出隊,pop()函式會將第乙個元素出隊

#include #include #include 

using

namespace

std;

intmain

()

using namespace std;

int main()

# 優先佇列

優先佇列主要優先順序演算法有區別,出隊與一般的佇列是一樣的

## 定義

priority_queue,第乙個泛型是元素型別,第二個型別是,第三個型別是優先順序演算法

```c++

#include #include #include using namespace std;

int main()

return 0;

}

這是乙個公升序的佇列,也就是優先數大的會放在隊尾(我也不知道為什麼)

他的輸出是

6

1040

90100

如果元素是字串型別的話會按首字母排序

#include #include #include #include 

using

namespace

std;

intmain

()return0;

}

輸出是

ab

bhdhe

huio

自定義優先順序主要是通過乙個仿函式(我也不大清楚)來實現

#include #include #include #include 

using

namespace

std;

template

<

typename

t>

void

print_queue(t

&q)cout

<<

'\n';}

intmain())

q.push(n

);print_queue(q

);priority_queue

<

int,

std::

vector

<

int>

,std

::greater

<

int>

>q2;

for(

intn:)

q2.push(n

);print_queue(q2

);// using lambda to compare elements.

auto

cmp=

(int

left

,int

right);

priority_queue

<

int,

std::

vector

<

int>

,decltype

(cmp

)>q3(

cmp);

for(

intn:)

q3.push(n

);print_queue(q3

);}

??正文結束??

實驗三 鏈佇列(c )

1 熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。2 學會使用棧和佇列解決實際問題。1 自己確定結點的具體資料型別和問題規模 建立乙個鏈佇列,實現佇列的入隊和出隊操作。includeusing namespace std const int maxsize 100 templ...

C 多執行緒程式設計學習三 FIFO佇列設計

在網路程式設計中,fifo佇列是經常使用到的乙個資料緩衝機制,同時這也是乙個生產者與消費者問題,在設計過程中要注意以下幾點。佇列大小設計要科學,對於服務的強度而言,有乙個最優化長度,要通過測試去發掘。資料競爭保護,通過設定條件互斥量,對涉及佇列的操作進行保護。事件通知策略,兩個執行緒,乙個讀,乙個寫...

c 學習筆記 佇列

標頭檔案 include 定義 queue typename name typename為任意資料型別,name為所定義佇列名常用函式 函式名返回值q.empty 判斷佇列是否為空 q.size 返回當前佇列元素個數 q.pop 刪除隊首元素 q.push x 向隊尾新增元素 q.front 返回隊...