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日