亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

C++樹節點的父指針與孩子指針如何使用

c++
小樊
86
2024-08-24 03:28:34
欄目: 編程語言

在C++中實現樹節點的父指針與孩子指針可以通過定義一個樹節點類來實現。一個簡單的樹節點類可以包含數據成員表示節點的值,父指針和孩子指針。

#include <iostream>
#include <vector>

class TreeNode {
public:
    int val;
    TreeNode* parent;
    std::vector<TreeNode*> children;

    TreeNode(int value) : val(value), parent(nullptr) {}

    void addChild(TreeNode* child) {
        children.push_back(child);
        child->parent = this;
    }

    void removeChild(TreeNode* child) {
        for (int i = 0; i < children.size(); i++) {
            if (children[i] == child) {
                children.erase(children.begin() + i);
                child->parent = nullptr;
                break;
            }
        }
    }
};

int main() {
    TreeNode* root = new TreeNode(1);
    TreeNode* child1 = new TreeNode(2);
    TreeNode* child2 = new TreeNode(3);

    root->addChild(child1);
    root->addChild(child2);

    std::cout << "Child 1's parent: " << child1->parent->val << std::endl;
    std::cout << "Child 2's parent: " << child2->parent->val << std::endl;

    root->removeChild(child1);

    std::cout << "Child 1's parent after removal: " << child1->parent << std::endl;

    delete child1;
    delete child2;
    delete root;

    return 0;
}

在上面的代碼中,定義了一個TreeNode類,其中包含了一個整型值val,父指針parent和孩子指針children。通過addChild()方法可以添加孩子節點,并同時更新孩子節點的父指針;通過removeChild()方法可以移除孩子節點,并將其父指針置為nullptr

main()函數中,創建了一個根節點和兩個子節點,并演示了如何使用父指針和孩子指針。最后記得要在程序結束前釋放動態分配的內存。

通過這種方式,可以方便地構建樹形結構,并實現節點之間的父子關系。

0
句容市| 聂拉木县| 花莲县| 香港| 上思县| 莱州市| 吕梁市| 昭觉县| 津市市| 岐山县| 曲阳县| 宜章县| 澄江县| 开原市| 永丰县| 衡阳县| 贡觉县| 岑巩县| 秭归县| 萍乡市| 松阳县| 托克托县| 河间市| 梨树县| 胶南市| 岳西县| 德惠市| 密云县| 普宁市| 星座| 习水县| 寻乌县| 互助| 黄陵县| 分宜县| 榆林市| 木兰县| 简阳市| 和平区| 河曲县| 四川省|