在C++中,可以通過定義一個二叉樹節點的結構體來表示二叉樹節點,然后通過遞歸的方式來建立和遍歷二叉樹。
以下是一個示例代碼:
#include <iostream>
struct TreeNode {
int data;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : data(x), left(nullptr), right(nullptr) {}
};
void insert(TreeNode* &root, int data) {
if (root == nullptr) {
root = new TreeNode(data);
} else {
if (data < root->data) {
insert(root->left, data);
} else {
insert(root->right, data);
}
}
}
void inorderTraversal(TreeNode* root) {
if (root == nullptr) {
return;
}
inorderTraversal(root->left);
std::cout << root->data << " ";
inorderTraversal(root->right);
}
int main() {
TreeNode* root = nullptr;
int arr[] = {5, 3, 8, 2, 4, 7, 9};
for (int num : arr) {
insert(root, num);
}
std::cout << "Inorder traversal: ";
inorderTraversal(root);
std::cout << std::endl;
return 0;
}
在上面的代碼中,定義了一個二叉樹節點結構體TreeNode
,包含數據域data
以及左右子節點指針left
和right
。然后通過insert
函數遞歸地插入節點來建立二叉樹,通過inorderTraversal
函數進行中序遍歷輸出二叉樹中的所有節點數據。
可以根據需要修改代碼實現其他遍歷方式,如前序遍歷和后序遍歷。