棧和佇列以及優先佇列 知識點

2021-08-21 19:35:54 字數 1151 閱讀 4172

棧的定義:stack《資料型別》 + 棧的名稱

佇列的定義: queue《資料型別》 + 佇列名稱

**實現(以int為例)

stack sta ;

queue que ;

棧名sta,佇列名que

sta. push ();//元素入棧

que. push ();//元素佇列

sta.pop ();//最頂端元素出棧

que.pop ();//最底端元素出佇列

sta.top ();//查詢棧頂元素

que. front ();//查詢佇列頂端元素

sta. empty ();//判斷棧是否為空

que. empty ();//判斷佇列是否為空

while (! sta. empty ()) sta.pop ();//棧的清空

while (! que. empty ()) que.pop ();//佇列的清空

我們知道了佇列是先進先出,那麼優先佇列則不一樣了,進

的順序不能決定出的順序,優先佇列出的順序是按照自己設

置的優先等級來出佇列的,如果自己不設定優先順序的話,默

認優先順序為越大優先順序越高。

priority_queue que ;

que .push ();

que .pop ();

que .top ();//top返回優先順序最高的數。注意 不能用front!

que .empty ();

我們知道既然預設的優先順序是越大優先順序越高,那麼我們如何來

更改這個優先順序呢?

//int 型優先順序的設定,一定要注意最後兩個》之間有乙個空格,否則編譯時會報錯 

priority_queue , greater > que ;

priority_queue ,less > que ;

//樣例

#include#include#include#includeusing namespace std;

priority_queue , greater> q ;//從小到大輸出

int main()

while(! q.empty())

{ cout

棧和佇列 知識點

在c 標準庫 stl 中,實現了棧和佇列,方便使用,並提供了若干方法。以下作簡要介紹。1 棧 stack 說明及舉例 使用棧,要先包含標頭檔案 include 定義棧,以如下形式實現 stacks 其中type為資料型別 如 int,float,char等 棧的主要操作 s.push item 將i...

棧與佇列知識點

一 讀取 include include 棧的標頭檔案 using namespace std intmain 輸入 123 輸出 123 二 刪除 include include 棧的標頭檔案 using namespace std intmain 輸入 123 456 輸出 123 三 判斷棧的...

佇列知識點

佇列 queue 是一種集合,只有2種操作,1 將元素新增到佇列末尾,2 將元素從頂部取出。1 int size 獲取佇列長度 2 add e offer e 新增元素到隊尾,但是當超過佇列容量,使用add會丟擲異常,offer僅僅返回false。3 remove e poll e 取出隊首元素並刪...