打印哈夫曼树
void coprint(HuffmanTree start,HuffmanTree HT)
{char t=' ';
if(start!=HT)
{
FILE * TreePrint;
if((TreePrint=fopen("TreePrint.txt","a"))==NULL)
{cout<<"创建文件失败"<<endl;
return;
}
numb++;//该变量为已被声明为全局变量
coprint(HT+start->rchild,HT);
if(start->lchild!=NULL&&start->rchild!=NULL) t='<';
cout<<setw(5*numb)<<start->weight<<t<<endl;
fprintf(TreePrint,"%d\n",start->weight);
coprint(HT+start->lchild,HT);
numb--;
fclose(TreePrint);
}
}
void printree(HuffmanTree HT,int w) //打印赫夫曼树
{
HuffmanTree p;
p=HT+w;
cout<<"下面打印赫夫曼树"<<endl; // 输出"打印赫夫曼树"语句
line();
coprint(p,HT);
line();
cout<<"打印工作结束"<<endl; //输出"打印工作结束"
}
求大神急救,打印哈夫曼树中这块怎么理解?
numb++;//该变量为已被声明为全局变量
coprint(HT+start->rchild,HT);
if(start->lchild!=NULL&&start->rchild!=NULL) t='<';
cout<<setw(5*numb)<<start->weight<<t<<endl;
fprintf(TreePrint,"%d\n",start->weight);
coprint(HT+start->lchild,HT);
numb--;
其中coprint(HT+start->rchild,HT)这个自己调用自己有什么用?怎么理解?