佇列與優先佇列的總結

2021-09-25 05:53:34 字數 720 閱讀 3092

堆樹的定義如下:

(1)堆樹是一顆完全二叉樹;

(2)堆樹中某個節點的值總是不大於或不小於其孩子節點的值;

(3)堆樹中每個節點的子樹都是堆樹。

當父節點的鍵值總是大於或等於任何乙個子節點的鍵值時為最大堆。 當父節點的鍵值總是小於或等於任何乙個子節點的鍵值時為最小堆。如下圖所示,左邊為最大堆,右邊為最小堆。

底層實現:用max_heap(最大堆)實現。預設情況下是以vector為底部容器

注意其中的top、push、pop寫法

關於push_heap與pop_heap的實現可參考:

中的push_heap與pop_heap原始碼

佇列與優先佇列

是一種特殊的線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列的資料元素又稱為佇列元素。在佇列中插入乙個佇列元素稱為入隊,從佇列中刪除乙個佇列元素稱為...

佇列與優先佇列(queue)

是一種特殊的線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列的資料元素又稱為佇列元素。在佇列中插入乙個佇列元素稱為入隊,從佇列中刪除乙個佇列元素稱為...

棧 佇列與優先佇列

123 45 include stack int s 入棧 push 出棧 pop 取棧頂top 123 45 include queue int s 入隊 push 出隊 pop 取隊首元素 front 不刪除 123 4priority queue int pq 入隊 push 出隊 pop 取...