打印哈夫曼树

JAVA菜鸟程序员 2012-12-28 10:02:26
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)这个自己调用自己有什么用?怎么理解?
...全文
612 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mindyjhr 2012-12-29
  • 打赏
  • 举报
回复
引用 1 楼 gumh 的回复:
引用coprint(HT+start->rchild,HT)这个自己调用自己有什么用? 是遞歸調用,
递归调用打印节点啊
  • 打赏
  • 举报
回复
知道是递归调用,他这个有什么用???大神指点迷津!!!
prajna 2012-12-29
  • 打赏
  • 举报
回复
引用 2 楼 dc282614966 的回复:
知道是递归调用,他这个有什么用???大神指点迷津!!!
這個程序可讀性不好,而且只貼出這麽一點,沒看懂...
prajna 2012-12-28
  • 打赏
  • 举报
回复
引用
coprint(HT+start->rchild,HT)这个自己调用自己有什么用?
是遞歸調用,

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧