include <iostream>

// 定义二叉树节点结构
struct TreeNode {

int data;
TreeNode* left;
TreeNode* right;

TreeNode(int val) : data(val), left(nullptr), right(nullptr) {}

};

// 向二叉树中添加节点的函数
void insertNode(TreeNode*& root, int value) {

if (root == nullptr) {
    root = new TreeNode(value);
    return;
}

if (value < root->data) {
    if (root->left == nullptr) {
        root->left = new TreeNode(value);
    } else {
        insertNode(root->left, value);
    }
} else {
    if (root->right == nullptr) {
        root->right = new TreeNode(value);
    } else {
        insertNode(root->right, value);
    }
}

}

// 中序遍历打印二叉树节点值
void inorderTraversal(TreeNode* root) {

if (root == nullptr) return;
inorderTraversal(root->left);
std::cout << root->data << " ";
inorderTraversal(root->right);

}

int main() {

TreeNode* root = nullptr;

// 添加节点
insertNode(root, 5);
insertNode(root, 3);
insertNode(root, 7);
insertNode(root, 1);
insertNode(root, 4);
insertNode(root, 6);
insertNode(root, 8);

// 打印二叉树
std::cout << "Inorder Traversal: ";
inorderTraversal(root);
std::cout << std::endl;

return 0;

}


阿白
1 声望0 粉丝