gpt4 book ai didi

c++ - 在递归函数 C++ 中保持计数

转载 作者:行者123 更新时间:2023-11-27 23:22:28 25 4
gpt4 key购买 nike

我有一个按级别顺序遍历 AVL 树的函数。输出格式为:

level 0: jim(2)
level 1: bob(1) joe(1)

但是当我达到 4 级及更高级别时,我想将其分解,以便每行仅显示 8 个项目。所以输出将开始看起来像这样:

level 4: item1(1) item2(1) item3(2) item4(2) item5(1) item6(2) item7(1) item8(2)
level 4: item9(2) item10(2)

现在我的代码将显示所有项目,但只显示在一行中。我无法弄清楚如何改进此代码以使其按照我想要的方式进行格式化。我该如何实现?

以下是当前的功能:

//PRINT BY LEVEL ORDER TRAVERSAL
void Avltree::level_order(Avlnode* root, ofstream &out){
int h = height(root);
for(int i = 0; i < h; i++){
out << "Level " << i << ": ";
print_level(root, i, out);
out << endl;
}
}

//PRINT A GIVEN LEVEL ON A TREE
void Avltree::print_level(Avlnode* root, int level, ofstream &out){

if(root == NULL)
return;
if(level == 0){
out << root->data << "(" << height(root) << ") ";
}
else if (level > 0)
{
print_level(root->left, level-1, out);
print_level(root->right, level-1, out);
}
}

最佳答案

您应该将计数作为参数传递给递归函数,当计数 % 8(或您希望每行的数字为任何值)为 0 时,开始新的一行。

关于c++ - 在递归函数 C++ 中保持计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11832854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com