展开全部
#include
using namespace std;
struct node
{
int w;
int flag;
int lchild,rchild;
int parent;
};
node huff[1001];
int n;
void read()
{
int i;
cout<
cin>>n;
for(i=1;i<=n;i++)
cin>>huff[i].w;
}
int huffman()
{
int i,min1,min2,k1,k2,j,s;//初始化标记
for(i=1;i<=2*n-1;i++)
{
huff[i].flag=0;
huff[i].lchild=-1;
huff[i].rchild=-1;
huff[i].parent=-1;
}
//n-1次建树
for(i=1;i<=n-1;i++)
{
min1=100000;
min2=100000;//求最小初始化最大
k1=-1;// 记下最小次小的下标
k2=-1;
for(j=1;j<=n+i-1;j++)//搜索范围<