91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
嵊州市| 延川县| 临江市| 广宁县| 乐都县| 天台县| 资兴市| 北川| 鄯善县| 都江堰市| 天水市| 偃师市| 聂荣县| 莎车县| 清涧县| 夏邑县| 石渠县| 太康县| 古交市| 思南县| 政和县| 北安市| 湘乡市| 武鸣县| 林州市| 长寿区| 都安| 孟津县| 会东县| 临安市| 鹰潭市| 泗洪县| 南澳县| 历史| 工布江达县| 溧水县| 通榆县| 辉县市| 扎鲁特旗| 安图县| 类乌齐县|