printtree.cpp
来自「用C++编写的哈弗曼树的源代码,方便C语言及C++初学者学习交流」· C++ 代码 · 共 22 行
CPP
22 行
#include"head.h"
void coprint(Huffmantree start,Huffmantree HT,int numb)
{
if(start!=HT) //判断赫夫曼树有没有到达叶子节点,如果赫夫曼树没有到达叶子节点
{
FILE * TreePrint;
if((TreePrint=fopen("TreePrint.txt","a"))==NULL)
{
printf("创建文件失败\n");
return;
}
numb++;//该变量为已被声明为全局变量 子树的输出长度当从递归函数返回时上层的numb保持不变是靠下面的numb--完成的
coprint(HT+start->rchild,HT,numb); //先递归看右子树,直到到达叶子节点
printf("(%5*numb)d",start->weight); //setw()函数是设置域宽
fprintf(TreePrint,"%d\n",start->weight);
coprint(HT+start->lchild,HT,numb); //再递归看左子树,直到到达叶子节点
numb--; //保证了当下层的函数返回是numb保持不变
fclose(TreePrint);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?