#include #include using namespace std;
templateclass minheap
; void disp();
void buildheap(); //建立最小堆
bool isleaf(int pos)const; //判斷是否為葉子
int leftchild(int pos)const; //返回左孩子的位置
int rightchild(int pos)const; //返回右孩子的位置
int parent(int pos)const; //返回父節點的位置
bool remove(int pos,t & node); //刪除給定下標的元素
void siftdown(int left); //篩選法函式,引數left表示開始處理的陣列下標
void siftup(int position); //從position開始向上調整,使序列成為堆
bool insert(const t& newnode); //向堆中插入新元素newnode
void movemin(); // 從堆頂移動最小元素到尾部
t & removemin(); //從堆頂刪除最小元素
};templateminheap::minheap(t *array,int num,int max=20)//建構函式
}templatebool minheap::isleaf(int pos)const //判斷是否為葉子
else
return false;
}templateint minheap::leftchild(int pos)const //返回左孩子的位置
templateint minheap::rightchild(int pos)const //返回右孩子的位置
templateint minheap::parent(int pos)const //返回父節點的位置
templatebool minheap::remove(int pos,t & node) //刪除給定下標的元素
templatevoid minheap::siftdown(int i) //篩選法函式,引數left表示開始處理的陣列下標
else break;
}else
else break;}}
else break;
}}templatevoid minheap::siftup(int i) //從position開始向上調整,使序列成為堆
else break;
}}templatebool minheap::insert(const t&newnode) //向堆中插入新元素newnode
templatet & minheap::removemin() //從堆頂刪除最小元素
int main()
; cout<<"最小堆"h.disp();
h.buildheap();
h.disp();
h.removemin();
h.disp();
h.removemin();
h.disp();
system("pause");
return 0;
}
大連理工大學編譯原理第4次上機 語法分析2
目的 熟練掌握自上而下的語法分析方法,並能用程式實現。要求 1.使用的文法如下 e te e te t ft t ft f e id 2.對於任意給定的輸入串 詞法記號流 進行語法分析,非遞迴 分析方法可以任選其一來實現。3.要有一定的錯誤處理功能。即對錯誤能提示,並且能在一定程度上忽略盡量少的記號...
大連理工大學CSDN俱樂部新學期招新工作圓滿完成
大連理工大學csdn俱樂部成立於2011年3月,俱樂部以提高會員計算機水平,激發創造思維,鍛鍊會員能力為目的,從成立到發展壯大一直受到學部的關懷,辦講座 做培訓也受到學校同學的廣泛關注。目前俱樂部已經走進第三屆,以技術引領發展的口號卻沒有改變,如今,社團急需新鮮血液補充進來,於是我們開始了新一學年的...
2016大連理工大學計算機考研經驗
時間飛快的流逝,唯獨現在,我有一種想對愛因斯坦發牢騷的心情,岡部,時間根據每個人的主觀感受,既會變長,也會變短,相對論真是既浪漫又傷感的東西呢。牧瀨紅莉棲 命運石之門 2016考研成績已出,本人報考大連理工大學電腦科學與技術 本科也在大連理工 初試總分387排名第一,政治64,數學114,英語78,...