这是一棵哈夫曼树,求大神解决

这是一棵哈夫曼树 存c++ 应该是select函数出错了 求助大神 谢谢

#include
using namespace std;
const int Maxsize=7;
struct element {
int weight;
int parent,lchild,rchild;
};
void Select(element huffman[Maxsize],int &a,int &b) {
int Fmax,Smax;
if(huffman[0].weight>huffman[1].weight) {
Fmax=1;
Smax=0;
} else {
Fmax=0;
Smax=1;
}
for(int i=2; i<Maxsize-1; i++) {
if(huffman[Smax].weight<=huffman[i].weight) {
} else {
if(huffman[Fmax].weight<=huffman[i].weight)
Smax=i;
else {
Smax=Fmax;
Fmax=i;
}
}
}
a=Fmax;
b=Smax;
cout<<"**********i1="<<a<<"*******i2="<<b<<"***"<<endl;
}
void Print(element huffman[],int n) {
cout<<"weight\t\t"<<"parent\t"<<"lchild\t"<<"rchild\t"<<endl;
for(int i=0; i<2*n-1; i++) {
cout<<huffman[i].weight<<"\t\t"<<huffman[i].parent<<"\t";
cout<<huffman[i].lchild<<"\t"<<huffman[i].rchild<<endl;
}
}
void HuffmanTree(element Huffman[],int w[],int n) {
int i1=0,i2=1;
for(int i=0; i<2*n-1; i++) {
Huffman[i].weight=0;
Huffman[i].parent=-1;
Huffman[i].lchild=-1;
Huffman[i].rchild=-1;
}
for(int i=0; i<n; i++)
Huffman[i].weight=w[i];
for(int k=n; k<2*n-1; k++) {
Select(Huffman,i1,i2);
cout<<"*****k="<<k<<endl;
Huffman[i1].parent=k;
Huffman[i2].parent=k;
Huffman[k].weight=Huffman[i1].weight+Huffman[i2].weight;
Huffman[k].lchild=i1;
Huffman[k].rchild=i2;
}
}

int main() {
int n=4;
element huffman[2*n-1];
int w[n];
for(int i=0; i cin>>w[i];
HuffmanTree(huffman,w,n);
Print(huffman,n);
return 0;
}

https://zhidao.baidu.com/question/627828770699433604.html