在C++中,可以通過定義一個二叉樹節點結構體來創建二叉樹。每個節點結構體包含一個值和指向左右子節點的指針。然后可以使用遞歸的方式來構建二叉樹。以下是一個簡單的示例代碼:
#include <iostream>
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
TreeNode* createBinaryTree() {
int val;
std::cin >> val;
if (val == -1) { // -1表示空節點
return nullptr;
}
TreeNode* root = new TreeNode(val);
std::cout << "Enter left child of " << val << ": ";
root->left = createBinaryTree();
std::cout << "Enter right child of " << val << ": ";
root->right = createBinaryTree();
return root;
}
void inorderTraversal(TreeNode* root) {
if (root == nullptr) {
return;
}
inorderTraversal(root->left);
std::cout << root->val << " ";
inorderTraversal(root->right);
}
int main() {
TreeNode* root = createBinaryTree();
std::cout << "Inorder traversal of the binary tree: ";
inorderTraversal(root);
return 0;
}
在上面的示例代碼中,首先定義了一個TreeNode
結構體表示二叉樹節點,然后使用createBinaryTree
函數遞歸地構建二叉樹。用戶輸入樹節點的值,-1表示空節點。最后,使用inorderTraversal
函數進行中序遍歷打印出二叉樹的值。