在C++中實現樹的一種常見方法是使用節點結構體來表示樹的每個節點,并使用指針來連接節點之間的關系。下面是一個簡單的示例來實現一個二叉樹:
#include <iostream>
// 定義樹的節點結構體
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
// 插入節點函數
void insert(TreeNode*& root, int val) {
if (root == nullptr) {
root = new TreeNode(val);
} else {
if (val < root->val) {
insert(root->left, val);
} else {
insert(root->right, val);
}
}
}
// 中序遍歷函數
void inorder(TreeNode* root) {
if (root == nullptr) {
return;
}
inorder(root->left);
std::cout << root->val << " ";
inorder(root->right);
}
int main() {
TreeNode* root = nullptr;
insert(root, 5);
insert(root, 3);
insert(root, 7);
insert(root, 2);
insert(root, 4);
std::cout << "Inorder traversal: ";
inorder(root);
std::cout << std::endl;
return 0;
}
在以上示例中,我們定義了一個TreeNode
結構體來表示樹的節點,并實現了插入節點和中序遍歷的函數。通過不斷調用insert
函數,我們可以構建一顆二叉樹,并通過inorder
函數進行中序遍歷輸出。