首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

二叉树层次顺序插入c++

二叉树层次顺序插入是指按照树的层次顺序,逐个将节点插入到二叉树中。在C++中,可以通过定义一个二叉树节点的结构体和相应的插入函数来实现。

首先,定义一个二叉树节点的结构体,包含一个值和左右子节点的指针:

代码语言:txt
复制
struct TreeNode {
    int val;
    TreeNode* left;
    TreeNode* right;
    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};

接下来,实现一个层次顺序插入的函数,该函数接受一个二叉树的根节点指针和要插入的值作为参数:

代码语言:txt
复制
void insert(TreeNode* root, int value) {
    if (root == nullptr) {
        root = new TreeNode(value);
        return;
    }

    queue<TreeNode*> q;
    q.push(root);

    while (!q.empty()) {
        TreeNode* node = q.front();
        q.pop();

        if (node->left == nullptr) {
            node->left = new TreeNode(value);
            return;
        } else {
            q.push(node->left);
        }

        if (node->right == nullptr) {
            node->right = new TreeNode(value);
            return;
        } else {
            q.push(node->right);
        }
    }
}

以上代码中,我们使用了一个队列来辅助层次遍历二叉树。首先将根节点入队,然后循环遍历队列中的节点。对于每个节点,如果其左子节点为空,则将新节点插入为其左子节点;如果左子节点不为空,则将左子节点入队。同理,如果右子节点为空,则将新节点插入为其右子节点;如果右子节点不为空,则将右子节点入队。这样就可以保证按照层次顺序插入节点。

下面是一个示例的使用代码:

代码语言:txt
复制
int main() {
    TreeNode* root = new TreeNode(1);
    insert(root, 2);
    insert(root, 3);
    insert(root, 4);
    insert(root, 5);

    // 输出二叉树的层次遍历结果
    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);
        }
    }

    return 0;
}

该示例中,我们首先创建了一个根节点为1的二叉树,然后按照层次顺序插入了节点2、3、4、5。最后,输出二叉树的层次遍历结果,即1 2 3 4 5。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发(移动推送):https://cloud.tencent.com/product/umeng
  • 腾讯云区块链服务(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙(Tencent XR):https://cloud.tencent.com/product/xr
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

6分31秒

【剑指Offer】32.3 按之字形顺序打印二叉树

275
21分9秒

62-尚硅谷-Scala数据结构和算法-顺序存储二叉树

16分44秒

018-尚硅谷-图解Java数据结构和算法-单链表按顺序插入节点

16分44秒

018-尚硅谷-图解Java数据结构和算法-单链表按顺序插入节点

9分13秒

100-尚硅谷-图解Java数据结构和算法-顺序存储二叉树思路图解

16分30秒

101-尚硅谷-图解Java数据结构和算法-顺序存储二叉树代码实现

9分13秒

100-尚硅谷-图解Java数据结构和算法-顺序存储二叉树思路图解

16分30秒

101-尚硅谷-图解Java数据结构和算法-顺序存储二叉树代码实现

14分25秒

071.go切片的小根堆

1时36分

设计模式在框架构建以及框架核心流程中的应用

领券