哈夫曼树思路及C++代码
先介绍经典的合并果子问题
哈夫曼树的构建思想:
反复选择最小的两个元素,合并,直至只剩下一个元素。
代码:
#include#include using namespace std; int main () { int n,i,x,y,a,ans=0; priority_queue ,greater > Q; scanf ("%d",&n); for (i=0;i 1) { x=Q.top(); Q.pop(); y=Q.top(); Q.pop(); a=x+y; ans=ans+a; Q.push(a); } printf ("%d",ans); return 0; }



