阅读量:0
在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
函数进行中序遍历打印出二叉树的值。