来找出逐层树遍历的层次
To find out the level of level-by-level tree traversal
我想知道如何找出每个节点所在的级别。但是我想不明白。
这是这段代码的一部分,但我必须修改它。
if(root == NULL)
return;
q.enqueue(root);
while(!queue.empty()){
queue.dequeue(cur);
if( cur != NULL){
cout<<cur->data<<" ";
if(cur->left != NULL)
queue.enqueue(cur->left);
if(cur->right != NULL)
queue.enqueue(cur->right);
}
}
如何修改代码,使我可以知道每个节点的级别?
您正在进行正确方向的级别顺序遍历。如果您需要打印您所处的级别:
if(root == NULL)
return;
int level = 1;
q.enqueue(root);
q.enqueue(NULL);
while(!queue.empty()){
queue.dequeue(cur);
if(cur == NULL){
//going to next level
level++;
if(queue.empty()){
break;
}
queue.enqueue(NULL);
}
else {
cout << "LEVEL is: " << level;
cout<<cur->data<<" ";
if(cur->left != NULL){
queue.enqueue(cur->left);
}
if(cur->right != NULL){
queue.enqueue(cur->right);
}
}
}
相关文章:
- 有什么方法可以遍历结构吗
- 在循环中按顺序遍历成员变量
- 遍历模板参数
- 在遍历处理程序的向量时注册和注销处理程序
- C++RapidXml-使用first_node()遍历以修改XML文件中节点的值
- 遍历并行数组以确定C++中的最大数字
- 遍历顺序由 std::文件系统directory_iterator给出
- 遍历链表时的无限循环
- 遍历unordered_map向量
- 从预序遍历构造 bst 的 c++ 和 python 解决方案之间的区别
- C++声明双链表,使用两个 for 循环双向遍历列表并打印
- 如何正确地推回然后遍历堆中对象的向量?
- 遍历二维数组的所有子数组
- 如何在可变参数模板函数中遍历可变参数元组?
- 避免在遍历 IShellItemArray 时出现代码重复
- 我是否需要遍历升压 rtree 的层次结构才能实现最大效率?
- 如何调用遍历类层次结构的成员函数
- 提升 R 树是否支持层次结构遍历
- 来找出逐层树遍历的层次
- 如何从层次顺序遍历构建完整的树