打印常规树级别
Print general tree levels
对不起,我的英语不好。
我需要打印一般树或 n 元树的级别。
树的结构是:
struct GTnode{
int data;
nodeGT *fc; //first child
nodeGT *nb; //next brother
}
该算法的难度在于,当您在同一关卡中有 2 个不同的节点并且每个节点都有一个子节点时。
编辑例如,如果我有这棵树:
1
2 7 8
3 6 9 12
4 5 10 11
我必须打印:
1
2 7 8
3 6 9 12
4 5 10 11
每个 endl 代表树中的不同级别
编辑接下来是我的代码的想法:
void printLevel(GTnode *root){
GTnode *aux = root;
if(root != NULL){
cout<<aux->data;
printLevel(aux->nb);
cout<<end; //Print the space between levels
printLevel(aux->fc);
}
}
我知道这是错误的,但这只是我所拥有的一个想法。
您需要对树 (wp) 进行级别顺序/广度优先遍历。为此,您需要一个队列。将根放入队列中。然后这样做,直到队列为空:取出第一个,将其 ->fc 添加到队列中并转到其 ->nb(遍历所有 ->nb,直到没有更多,每次将其 ->fc 添加到队列中)。
相关文章:
- 打印时有二叉树问题.用户输入不打印任何内容
- 打印二叉树中的常见元素
- 打印所有儿童树元素的最佳算法?
- 如何打印在二叉搜索树中找到的数据?
- 带有矢量重复值的二叉树打印出来
- C++|以一种很好的方式将树(不一定是二进制的)打印到stdout
- 我在C++中编写了一个方法来打印树类的预序,但它显示了分割错误
- 二叉搜索树使用最常用的节点来打印出某些语句
- 如何以特定格式C++打印二叉搜索树
- 无法打印完整的二叉搜索树,因为我从最低节点向后迭代的逻辑有缺陷
- 如何在级别上打印树,给定一个结构,该结构保存节点的值及其父节点的值,对于树中的每个节点
- 在打印方法中,难以在二进制树中打印数据
- 如何修复以下代码以进行二叉树级别订单打印
- C++二叉树打印函数实现
- C++打印二叉树中的所有值
- 以下打印树函数不起作用为什么?
- 在C++中实现二叉搜索树,搜索不起作用.尝试打印节点的元素会导致输出崩溃
- C++二叉搜索树打印和深度计算
- 打印常规树级别
- 二叉搜索树打印