C++中树节点的插入与删除操作

   2024-10-01 3310
核心提示:在C++中,可以通过定义一个树节点结构体来表示树节点,并编写插入和删除操作的函数来实现对树节点的操作。以下是一个简单的示例

在C++中,可以通过定义一个树节点结构体来表示树节点,并编写插入和删除操作的函数来实现对树节点的操作。以下是一个简单的示例:

#include <iostream>struct TreeNode {    int val;    TreeNode* left;    TreeNode* right;    TreeNode(int v) : val(v), left(nullptr), right(nullptr) {}};void insert(TreeNode* root, int val) {    if (root == nullptr) {        root = new TreeNode(val);    } else if (val < root->val) {        if (root->left == nullptr) {            root->left = new TreeNode(val);        } else {            insert(root->left, val);        }    } else {        if (root->right == nullptr) {            root->right = new TreeNode(val);        } else {            insert(root->right, val);        }    }}void remove(TreeNode* root, int val) {    if (root == nullptr) {        return;    }    if (val < root->val) {        remove(root->left, val);    } else if (val > root->val) {        remove(root->right, val);    } else {        if (root->left == nullptr) {            TreeNode* temp = root->right;            delete root;            root = temp;        } else if (root->right == nullptr) {            TreeNode* temp = root->left;            delete root;            root = temp;        } else {            TreeNode* minNode = root->right;            while (minNode->left != nullptr) {                minNode = minNode->left;            }            root->val = minNode->val;            remove(root->right, minNode->val);        }    }}int main() {    TreeNode* root = new TreeNode(5);    insert(root, 3);    insert(root, 7);    insert(root, 2);    insert(root, 4);    insert(root, 6);    insert(root, 8);    remove(root, 3);    // 输出树的节点值    std::cout << root->val << " " << root->left->val << " " << root->right->val << std::endl;    return 0;}

在上面的示例中,定义了一个TreeNode结构体来表示树节点,然后实现了插入和删除操作的函数insertremove。在main函数中创建了一个根节点,并依次插入一些节点值,然后删除一个节点值,并输出树的节点值。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号