c++二叉树广度优先遍历代码
时间: 2024-03-30 08:31:56 浏览: 82
二叉树遍历广度优先
当然可以!下面是一个C++的二叉树广度优先遍历的代码示例:
```cpp
#include <iostream>
#include <queue>
using namespace std;
// 二叉树节点的定义
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
// 广度优先遍历函数
void breadthFirstTraversal(TreeNode* root) {
if (root == nullptr) {
return;
}
queue<TreeNode*> q;
q.push(root);
while (!q.empty()) {
TreeNode* node = q.front();
q.pop();
cout << node->val << " ";
if (node->left != nullptr) {
q.push(node->left);
}
if (node->right != nullptr) {
q.push(node->right);
}
}
}
int main() {
// 构建二叉树
TreeNode* root = new TreeNode(1);
root->left = new TreeNode(2);
root->right = new TreeNode(3);
root->left->left = new TreeNode(4);
root->left->right = new TreeNode(5);
// 广度优先遍历
cout << "广度优先遍历结果:";
breadthFirstTraversal(root);
return 0;
}
```
这段代码中,我们首先定义了一个`TreeNode`结构体来表示二叉树的节点。然后,我们使用队列来实现广度优先遍历。我们从根节点开始,将其入队,然后循环执行以下操作:取出队首节点,输出节点的值,将节点的左右子节点(如果存在)入队。直到队列为空时,遍历结束。
阅读全文