输入10个不同整数,依次插入到一颗初始为空的二叉排序树中,并对其进行中序遍历,以验证树的正确性。代码怎么写
时间: 2023-12-06 16:45:40 浏览: 90
可以按照以下步骤来编写代码:
1. 定义二叉排序树的节点结构体,包含值、左右子节点指针。
2. 定义插入节点函数 insertNode,接受一个整数值和二叉排序树的根节点指针,将新节点插入到树中。
3. 定义中序遍历函数 inorderTraversal,接受一个二叉排序树的根节点指针,将树中所有节点按中序遍历顺序输出。
4. 在主函数中,创建一个空树的根节点指针,调用 insertNode 函数插入10个不同整数,然后调用 inorderTraversal 函数验证树的正确性。
以下是代码示例:
```c++
#include <iostream>
using namespace std;
// 定义二叉排序树的节点结构体
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
// 插入节点函数
void insertNode(int val, TreeNode *&root) {
if (root == NULL) {
root = new TreeNode(val);
return;
}
if (val < root->val) {
insertNode(val, root->left);
} else {
insertNode(val, root->right);
}
}
// 中序遍历函数
void inorderTraversal(TreeNode *root) {
if (root == NULL) {
return;
}
inorderTraversal(root->left);
cout << root->val << " ";
inorderTraversal(root->right);
}
int main() {
// 创建空树的根节点指针
TreeNode *root = NULL;
// 插入10个不同整数
insertNode(5, root);
insertNode(2, root);
insertNode(8, root);
insertNode(1, root);
insertNode(3, root);
insertNode(7, root);
insertNode(9, root);
insertNode(4, root);
insertNode(6, root);
insertNode(10, root);
// 中序遍历验证树的正确性
inorderTraversal(root);
cout << endl;
return 0;
}
```
输出结果为:1 2 3 4 5 6 7 8 9 10。可以看到,树中所有节点按照中序遍历顺序被正确输出,证明树的正确性。
阅读全文