c++二叉树的层次遍历
作者:野牛程序员:2024-01-03 21:47:36 C++阅读 2872
使用C++实现二叉树的层次遍历可以借助队列来实现。以下是一个简单的示例代码:
#include <iostream>
#include <queue>
// 二叉树节点的定义
struct TreeNode {
int data;
TreeNode* left;
TreeNode* right;
TreeNode(int value) : data(value), left(nullptr), right(nullptr) {}
};
// 层次遍历函数
void levelOrderTraversal(TreeNode* root) {
if (!root)
return;
std::queue<TreeNode*> q;
q.push(root);
while (!q.empty()) {
TreeNode* current = q.front();
q.pop();
// 处理当前节点
std::cout << current->data << " ";
// 将左右子节点加入队列
if (current->left)
q.push(current->left);
if (current->right)
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);
// 释放内存
delete root->left->left;
delete root->left->right;
delete root->right->left;
delete root->right->right;
delete root->left;
delete root->right;
delete root;
return 0;
}此代码定义了一个TreeNode结构表示二叉树节点,然后使用队列进行层次遍历
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

