在树的打印递归算法中,递归完我想让它换行,有什么办法吗?
代码:
//递归方法
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");还有其他办法吗
int arr[3] = {1,2,3};
int*p = arr;
for(;p!=arr+3;p++){
printf("%d\n",*p);
}
return 0;
}