优先队列priority_queue 实现哈弗曼树WPL的计算

优先队列priority_queue 实现哈弗曼树WPL的计算

#include < iostream >
#include
< queue >
#include
< functional >
using   namespace  std;

priority_queue
< int ,vector < int > ,greater < int >> myqueue;

int  main ()
{

    
int n;
    
int i;
    
int sum=0;
    scanf(
"%d",&n);
    
for(i=1;i<=n;i++)
    
{
        
int temp;
        cin
>>temp;
        myqueue.push(temp);
    }

    
while(myqueue.size()!=1)
    
{
        
int temp;
        temp
=myqueue.top();
        sum
+=temp;
        myqueue.pop();
        temp
=myqueue.top();
        sum
+=temp;
        myqueue.pop();
        myqueue.push(sum);
        sum
=0;
    }

    cout
<<myqueue.top()<<endl;
    system(
"pause");
    
return 0;
}

你可能感兴趣的:(优先队列priority_queue 实现哈弗曼树WPL的计算)