大連理工大學資料結構上機 最小堆

2021-08-11 13:21:47 字數 1721 閱讀 4079

#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,...