試題 基礎練習 Huffuman樹
試題 基礎練習 Huffuman樹
? 翻了翻網上,基本都是暴力排序,我就提供一個最小堆的寫法吧!
? 點擊這里,跳轉查看最小堆插入洗掉函式的簡單寫法
Talk is cheap . Show me the code.
#include<iostream>
#include<algorithm>
#include<limits.h>
#include<vector>
using namespace std;
vector<int> minHeap;
void insert(int x) {
minHeap.push_back(x);
int child=minHeap.size()-1;
while(minHeap[child/2]>minHeap[child]){
swap(minHeap[child/2],minHeap[child]);
child/=2;
}
}
int Delete(){
int value=https://www.cnblogs.com/cell-coder/p/minHeap[1];
swap(minHeap[1],minHeap[minHeap.size()-1]);
minHeap.pop_back();
int parent=1,child=0;
for(parent=1;parent*2>n;
for(int i=0;i>temp;
insert(temp);
}
n=0;
while(minHeap.size()>2){
temp=Delete()+Delete();
n+=temp;
insert(temp);
}
cout<
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/205848.html
標籤:其他
上一篇:最小堆的插入洗掉函式
下一篇:求1+2+3+...+n
