创建一个二叉树的c++代码
时间: 2024-11-03 15:08:23 浏览: 13
c++版创建并输出二叉树完整代码
5星 · 资源好评率100%
创建一个简单的二叉树结构并支持基本操作如插入节点、查找节点和打印树的C++代码示例如下:
```cpp
#include <iostream>
// 定义二叉树结点
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
// 插入新节点
TreeNode* insertNode(TreeNode* root, int val) {
if (!root) {
return new TreeNode(val);
}
if (val < root->val) {
root->left = insertNode(root->left, val);
} else {
root->right = insertNode(root->right, val);
}
return root;
}
// 查找节点
bool searchNode(TreeNode* root, int val) {
if (!root || root->val == val) {
return root ? true : false;
}
return root->val < val ? searchNode(root->right, val) : searchNode(root->left, val);
}
// 中序遍历打印节点值
void inOrderTraversal(TreeNode* root) {
if (root) {
inOrderTraversal(root->left);
std::cout << root->val << " ";
inOrderTraversal(root->right);
}
}
int main() {
// 创建一个空的根节点
TreeNode* root = nullptr;
// 插入一些节点
root = insertNode(root, 50);
insertNode(root, 30);
insertNode(root, 20);
insertNode(root, 40);
insertNode(root, 70);
insertNode(root, 60);
insertNode(root, 80);
std::cout << "In-order traversal: ";
inOrderTraversal(root); // 输出: 20 30 40 50 60 70 80
// 搜索某个值
bool found = searchNode(root, 70);
if (found) {
std::cout << "\nValue 70 is found.\n";
} else {
std::cout << "\nValue 70 is not found.\n";
}
return 0;
}
```
在这个例子中,`insertNode`函数用于插入新节点,`searchNode`用于查找指定值,`inOrderTraversal`实现了中序遍历以打印节点值。
阅读全文