在树的打印递归算法中,递归完我想让它换行,有什么办法吗?

在树的打印递归算法中,递归完我想让它换行,有什么办法吗?
代码:

//递归方法
void PreOrder0(BTNode* b)
{
    if (b != NULL)
    {
        printf("%c", b->data);
        PreOrder0(b->lchild);
        PreOrder0(b->rchild);
    }
    
}

以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:

在递归方法中,可以通过增加一个参数来记录当前的层数,然后在递归完一层之后换行输出。

代码示例:

void PreOrder0(BTNode* b, int level)
{
    if (b != NULL)
    {
        printf("%c", b->data);
        PreOrder0(b->lchild, level + 1);
        PreOrder0(b->rchild, level + 1);
        if (level == 0) // 根节点,最后换行
        {
            printf("\n");
        }
    }
}

在调用递归方法时,初始的层数为0:

PreOrder0(root, 0);

除了在主函数里运行完这个函数后,使用printf("\n");还有其他办法吗