堆實際上是一顆二叉樹,對於大根堆來說,它的特點就是父節點的值大於所有子節點的值。 c++的stl中priority_queue已經幫我們實現好了堆的資料結構,接下來我們一起學習並實踐如何實現乙個堆並用堆進行排序。
priority_queue是stl的queue這個標頭檔案中定義的資料結構,因此需要額外引用它,即#include 。
1 #include 2 #include 3 #include 4using
namespace
std;
5 priority_queuemyheap;
6int
main() ;8//
在下面的迴圈內讀入元素並插入堆
9for (int i = 0; i < n; ++i)
12//
在下面的迴圈內從大到小輸出元素並將元素依次從堆頂彈出
13for (int i = 0; i < n; ++i)
17return0;
18 }
計蒜客課程競賽入門 二叉搜尋樹 流程記
細心的你應該發現了,二叉搜尋樹的每個節點都要比左邊的子孫節點的值要大,比右邊的要小。二叉搜尋樹的中序遍歷就是將整棵樹按從小到大的順序輸出。是不是很神奇 o 如何在二叉搜尋樹中查詢某個元素呢?首先從根出發,如果和根的值相等,則返回根,否則如果比根小就去左孩子,如果比根大就去右孩子,依次遞迴進行,直到找...
計蒜客 程式設計競賽入門
蒜頭的數學實在是太差了,於是老師把他關到小黑屋讓他閉門修煉。老師跟他一張紙,上面一排寫著1,2,3 n這n個數,中間用空白分隔。老師讓他在空白處填上加號或者減號。他讓蒜頭君求出一共有多少種加運算子的方法使得整個表示式的值為0,並輸出所有的方案。比如n 7時,1 2 3 4 5 6 7排成一排,一種插...
計蒜客 程式設計競賽入門
蒜頭君前幾天把最心愛的小麥手機摔壞了,新手機又要好幾天才能到貨,於是蒜頭君不得暫時用它珍藏已久的諾雞鴨非智慧型手機了。手機的儲存空間非常小,以至於未接來電 已接來電和已撥 都只能各自儲存最近的10條記錄。蒜頭買了手機以後的未接來電 已接來電和已撥 記錄全部給出。機智的蒜頭能夠猜到這個手機使用了迴圈佇...