以下是一个简单的 C++ 实现二叉树的示例代码:
#include <iostream>
// 二叉树节点定义
struct Node {
int data;
Node* left;
Node* right;
Node(int value) : data(value), left(nullptr), right(nullptr) {}
};
// 二叉树类定义
class BinaryTree {
private:
Node* root;
void insertHelper(Node* root, int value) {
if (value < root->data) {
if (root->left == nullptr) {
root->left = new Node(value);
} else {
insertHelper(root->left, value);
}
} else {
if (root->right == nullptr) {
root->right = new Node(value);
} else {
insertHelper(root->right, value);
}
}
}
void inorderTraversalHelper(Node* root) {
if (root != nullptr) {
inorderTraversalHelper(root->left);
std::cout << root->data << " ";
inorderTraversalHelper(root->right);
}
}
public:
BinaryTree() : root(nullptr) {}
void insert(int value) {
if (root == nullptr) {
root = new Node(value);
} else {
insertHelper(root, value);
}
}
void inorderTraversal() {
inorderTraversalHelper(root);
std::cout << std::endl;
}
};
int main() {
BinaryTree tree;
tree.insert(5);
tree.insert(3);
tree.insert(7);
tree.insert(2);
tree.insert(4);
std::cout << "Inorder Traversal: ";
tree.inorderTraversal();
return 0;
}
这段代码实现了一个简单的二叉树,包括节点结构体 Node
和二叉树类 BinaryTree
。你可以根据需要扩展该实现,增加其他功能如前序遍历、后序遍历、删除节点等操作。