c++层序遍历二叉树
作者:野牛程序员:2023-11-26 11:09:09 C++阅读 2783
层序遍历二叉树可以使用队列来实现。以下是一个 C++ 示例代码,演示了如何进行层序遍历:
#include <iostream>
#include <queue>
// 二叉树节点的定义
struct TreeNode {
int data;
TreeNode* left;
TreeNode* right;
TreeNode(int val) : data(val), left(nullptr), right(nullptr) {}
};
// 层序遍历函数
void levelOrderTraversal(TreeNode* root) {
if (root == nullptr) return;
// 使用队列来存储待访问的节点
std::queue<TreeNode*> q;
q.push(root);
while (!q.empty()) {
// 取出队首节点
TreeNode* current = q.front();
q.pop();
// 访问当前节点
std::cout << current->data << " ";
// 将当前节点的左右子节点加入队列
if (current->left != nullptr) {
q.push(current->left);
}
if (current->right != nullptr) {
q.push(current->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);
root->right->left = new TreeNode(6);
root->right->right = new TreeNode(7);
// 进行层序遍历
levelOrderTraversal(root);
return 0;
}请注意,这只是一个简单的例子,实际应用中可以根据需要调整数据结构和遍历逻辑。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:arduino dht11库文件
- 下一篇:c语言矩阵转置函数
