// // binary_tree.cpp // BinaryTreeApp // // Created by ljpc on 2018/5/3. // Copyright © 2018年 ljpc. All rights reserved. // #include "binary_tree.h" void HierarchyOrder(BiTreeNode* root) // 二叉树的层次遍历(队列实现) // 参数:二叉树根节点root // 输出:二叉树的层次遍历,中间没有空格,末尾不换行。 { // 请在这里补充代码,完成本关任务 /********** Begin *********/ /********** End **********/ }
时间: 2023-07-08 14:55:07 浏览: 66
好的,你的第一个问题是如何完成二叉树的层次遍历(队列实现)?是吗?
答案如下:
void HierarchyOrder(BiTreeNode* root) // 二叉树的层次遍历(队列实现)
{
if (!root) return; // 若根节点为空,则直接返回
queue<BiTreeNode*> q; // 建立一个队列,存放二叉树节点
q.push(root); // 将根节点加入队列
while (!q.empty()) { // 当队列非空
BiTreeNode* node = q.front(); // 取出队头元素
q.pop(); // 弹出队头元素
cout << node->data; // 输出节点元素
if (node->left) q.push(node->left); // 若该节点有左子节点,则将左子节点加入队列
if (node->right) q.push(node->right); // 若该节点有右子节点,则将右子节点加入队列
}
}
相关问题
// // binary_tree.cpp // BinaryTreeApp // // Created by ljpc on 2018/5/3. // Copyright © 2018年 ljpc. All rights reserved. // #include "binary_tree.h" void HierarchyOrder(BiTreeNode* root) // 二叉树的层次遍历(队列实现) // 参数:二叉树根节点root // 输出:二叉树的层次遍历,中间没有空格,末尾不换行。 { // 请在这里补充代码,完成本关任务 /********** Begin / /* End **********/ }
您好,您的代码中注释中缺少了一个*符号,导致注释未被正确结束,正确的代码如下:
```cpp
// binary_tree.cpp
// BinaryTreeApp
//
// Created by ljpc on 2018/5/3.
// Copyright © 2018年 ljpc. All rights reserved.
//
#include "binary_tree.h"
void HierarchyOrder(BiTreeNode* root) // 二叉树的层次遍历(队列实现)
{
if (!root) return; // 若根节点为空,则直接返回
queue<BiTreeNode*> q; // 建立一个队列,存放二叉树节点
q.push(root); // 将根节点加入队列
while (!q.empty()) { // 当队列非空
BiTreeNode* node = q.front(); // 取出队头元素
q.pop(); // 弹出队头元素
cout << node->data; // 输出节点元素
if (node->left) q.push(node->left); // 若该节点有左子节点,则将左子节点加入队列
if (node->right) q.push(node->right); // 若该节点有右子节点,则将右子节点加入队列
}
}
```
这样代码就可以正常编译运行了。
阅读全文