C++中樹節(jié)點(diǎn)(TreeNode)如何設(shè)計(jì)

c++
小樊
95
2024-08-24 03:20:28

在C++中設(shè)計(jì)樹節(jié)點(diǎn)(TreeNode)可以使用類來表示,一個(gè)基本的樹節(jié)點(diǎn)可以包含以下幾個(gè)成員變量:

template <typename T>
class TreeNode {
public:
    T data;               // 節(jié)點(diǎn)數(shù)據(jù)
    TreeNode<T>* left;    // 左子節(jié)點(diǎn)指針
    TreeNode<T>* right;   // 右子節(jié)點(diǎn)指針
    
    TreeNode(T val) : data(val), left(nullptr), right(nullptr) {}
};

這里使用了模板類來表示通用的樹節(jié)點(diǎn),其中包含節(jié)點(diǎn)的數(shù)據(jù)(data)、左子節(jié)點(diǎn)指針(left)和右子節(jié)點(diǎn)指針(right)??梢愿鶕?jù)具體的需求添加其他成員變量或方法。

如果需要支持多叉樹,可以使用一個(gè)vector來存儲(chǔ)子節(jié)點(diǎn)的指針:

template <typename T>
class TreeNode {
public:
    T data;                        // 節(jié)點(diǎn)數(shù)據(jù)
    vector<TreeNode<T>*> children; // 子節(jié)點(diǎn)指針數(shù)組
    
    TreeNode(T val) : data(val) {}
};

這樣就可以支持任意數(shù)量的子節(jié)點(diǎn),可以根據(jù)具體的場(chǎng)景選擇適合的設(shè)計(jì)方式來表示樹節(jié)點(diǎn)。

0