xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 3KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-04
  • 語言: C/C++
  • 標簽: c++??最小堆??

資源簡介

c++ 最小堆 還不錯 標準庫沒有 自己做作業用。

資源截圖

代碼片段和文件信息

template???
class?MinHeap?{???
public:???
????MinHeap(int?MinHeapSize?=?10);???
????~MinHeap()?{delete?[]?heap;}???
????int?Size()?const?{return?CurrentSize;}???
????T?Min()?{if?(CurrentSize?==?0)???
??????????????throw?OutOfBounds();???
???????????return?heap[1];}???
????MinHeap&?Insert(const?T&?x);???
????MinHeap&?DeleteMin(T&?x);???
????void?Initialize(T?a[]?int?size?int?ArraySize);???
????void?Deactivate()?{heap?=?0;}???
????void?Output()?const;???
private:???
????int?CurrentSize?MaxSize;???
????T?*heap;???
};???
??
template???
MinHeap::MinHeap(int?MinHeapSize)???
{???
????MaxSize?=?MinHeapSize;???
????heap?=?new?T[MaxSize+1];???
????CurrentSize?=?0;???
}???
??
template???
MinHeap&?MinHeap::Insert(const?T&?x)???
{???
????if?(CurrentSize?==?MaxSize)???
????????throw?NoMem();???
??
????//為x尋找應插入的位置???
????//i從新的葉節點開始,并沿著樹上升???
????int?i?=?++CurrentSize;???
????while?(i?!=?1?&&?x?????{???
????????heap[i]?=?heap[i/2];?//?將元素下移???
????????i?/=?2;??????????????//?移向父節點???
????}???
????heap[i]?=?x;???
??
????return?*this;???
}???
??
template???
MinHeap&?MinHeap::DeleteMin(T&?x)???
{???
????if?(CurrentSize?==?0)???
????????throw?OutOfBounds();???
??
????x?=?heap[1];???
??
????T?y?=?heap[CurrentSize--];?//最后一個元素???
??
????//?從根開始?為y尋找合適的位置???
????int?i?=?1??//?堆的當前節點???
???????ci?=?2;??//?i的子節點???
??
????while?(ci?<=?CurrentSize)????

評論

共有 條評論