二叉树cpp代码及其注释
时间: 2024-10-16 10:14:17 浏览: 32
在C++中,我们可以使用结构体或类来表示二叉树的基本元素和操作。这里是一个简单的二叉树结点类的示例:
```cpp
// 定义一个二叉树节点
class TreeNode {
public:
// 节点值
int val;
// 左孩子节点
TreeNode* left;
// 右孩子节点
TreeNode* right;
// 构造函数,初始化节点值
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
```
接下来是一个基本的二叉树类,包含插入节点、查找节点等简单操作:
```cpp
// 二叉树类
class BinaryTree {
private:
// 根节点
TreeNode* root;
public:
// 构造函数,创建空树
BinaryTree() : root(nullptr) {}
// 插入节点
void insertNode(int value) {
if (!root) {
root = new TreeNode(value);
} else {
insert(root, value);
}
}
// 辅助函数,递归插入
void insert(TreeNode*& node, int value) {
if (value < node->val) {
if (node->left) {
insert(node->left, value);
} else {
node->left = new TreeNode(value);
}
} else {
if (node->right) {
insert(node->right, value);
} else {
node->right = new TreeNode(value);
}
}
}
// 查找节点
bool searchNode(int value) {
return search(root, value);
}
// 辅助函数,递归查找
bool search(TreeNode* node, int value) {
if (!node) {
return false; // 没有找到
}
if (node->val == value) {
return true; // 找到了
} else {
return search(node->left, value) || search(node->right, value); // 继续在子树查找
}
}
};
// 使用示例
int main() {
BinaryTree tree;
tree.insertNode(5);
tree.insertNode(3);
tree.insertNode(7);
tree.insertNode(1);
cout << (tree.searchNode(5) ? "Found" : "Not Found") << endl; // 输出 "Found"
return 0;
}
```
阅读全文