用C++按照序列(20,16,5,27,30,20,67,60,7)中的9个元素的顺序构造一棵二叉排序树,写出代码
时间: 2024-04-30 18:20:47 浏览: 9
以下是用C++实现按照序列(20,16,5,27,30,20,67,60,7)中的9个元素的顺序构造一棵二叉排序树的代码:
```cpp
#include <iostream>
using namespace std;
// 二叉排序树结点定义
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
// 插入二叉排序树结点的函数
void insert(TreeNode*& root, int val) {
if (root == NULL) {
root = new TreeNode(val);
return;
}
if (val < root->val) {
insert(root->left, val);
}
else if (val > root->val) {
insert(root->right, val);
}
}
// 中序遍历输出二叉排序树结点的函数
void inorderTraversal(TreeNode* root) {
if (root == NULL) {
return;
}
inorderTraversal(root->left);
cout << root->val << " ";
inorderTraversal(root->right);
}
int main() {
int arr[] = {20, 16, 5, 27, 30, 20, 67, 60, 7};
int n = sizeof(arr) / sizeof(arr[0]);
TreeNode* root = NULL;
for (int i = 0; i < n; i++) {
insert(root, arr[i]);
}
inorderTraversal(root);
return 0;
}
```
输出结果为:5 7 16 20 27 30 60 67 。