当前位置:首页 C++ > 正文

c++二叉树的层次遍历

作者:野牛程序员:2024-01-03 21:47:36 C++阅读 2681

使用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
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击