用C/C++创建一个二叉树并编程举例
时间: 2023-05-21 12:06:19 浏览: 69
好的,让我帮您回答这个问题。以下是用C/C ++创建和遍历二叉树的示例代码:
```c++
#include <iostream>
using namespace std;
class TreeNode {
public:
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int val) : val(val), left(nullptr), right(nullptr) {}
};
class BinaryTree {
public:
TreeNode* root;
BinaryTree() : root(nullptr) {}
void insert(int val) {
TreeNode* node = new TreeNode(val);
if (root == nullptr) {
root = node;
return;
}
TreeNode* cur = root;
while (cur) {
if (val <= cur->val) {
if (cur->left == nullptr) {
cur->left = node;
return;
}
cur = cur->left;
} else {
if (cur->right == nullptr) {
cur->right = node;
return;
}
cur = cur->right;
}
}
}
void inorder(TreeNode* root) {
if (root == nullptr) return;
inorder(root->left);
cout << root->val << " ";
inorder(root->right);
}
void preorder(TreeNode* root) {
if (root == nullptr) return;
cout << root->val << " ";
preorder(root->left);
preorder(root->right);
}
void postorder(TreeNode* root) {
if (root == nullptr) return;
postorder(root->left);
postorder(root->right);
cout << root->val << " ";
}
};
// test
int main() {
BinaryTree tree;
tree.insert(10);
tree.insert(7);
tree.insert(15);
tree.insert(12);
tree.insert(17);
cout << "Inorder traversal:" << endl;
tree.inorder(tree.root);
cout << endl;
cout << "Preorder traversal:" << endl;
tree.preorder(tree.root);
cout << endl;
cout << "Postorder traversal:" << endl;
tree.postorder(tree.root);
cout << endl;
return 0;
}
```
您也可以自己添加一些其他的方法,比如删除节点、查找节点等等。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![md](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)