m0_62432380 2022-06-11 23:04 采纳率: 92.9%
浏览 44
已结题

想要一个对下面代码的详细解释,最好有一个比较总的,然后每一行的代码也有相应的解释

FILE *fp6;
void dispHT(HuffmanTree HT6,int level,HuffmanTree HT)//以缩进的方式输出赫夫曼树
{
if (HT6->rchild>0)
{
dispHT(HT+HT6->rchild,level+1,HT);
}
int i=0;
for (;i<level;i++)
{
if (i<level-1)
{
printf(" ");
outstuf<<" ";
}
else
{
printf("abcdefg");
outstuf<<"abcdefg";
}
}
printf("%d\n",HT6->weight);
outstuf<weight<<endl;
if (HT6->lchild>0)
{
dispHT(HT+HT6->lchild,level+1,HT);
}
fclose(fp6);
}

int main()
{
outstuf.open("TreePrint.txt",ios::out);
dispHT(HT+53,1,HT);
outstuf.close();
}

  • 写回答

1条回答 默认 最新

  • 白驹_过隙 算法领域新星创作者 2022-06-18 11:46
    关注
    
    FILE *fp6;
    void dispHT(HuffmanTree HT6,int level,HuffmanTree HT)//以缩进的方式输出赫夫曼树
    {
    if (HT6->rchild>0)//如果右节点大于0
    {
    dispHT(HT+HT6->rchild,level+1,HT);//递归调用右节点
    }
    int i=0;
    for (;i<level;i++)//变量当前层数
    {
    if (i<level-1)//如果不是最后一层输出空格
    {
    printf(" ");
    outstuf<<" ";
    }
    else
    {
    printf("abcdefg");//最后一层时输出
    outstuf<<"abcdefg";
    }
    }
    printf("%d\n",HT6->weight);//输出当前节点权重
    outstuf<weight<<endl;
    if (HT6->lchild>0)//如果左节点大于0
    {
    dispHT(HT+HT6->lchild,level+1,HT);//递归调用左节点
    }
    fclose(fp6);
    }
    
    int main()
    {
    outstuf.open("TreePrint.txt",ios::out);//打开文件
    dispHT(HT+53,1,HT);
    outstuf.close();//关闭文件
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月26日
  • 已采纳回答 6月18日
  • 创建了问题 6月11日

悬赏问题

  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了