在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)。