c++二叉搜索树详细代码
时间: 2023-10-16 11:14:31 浏览: 102
很高兴回答你的问题!以下是C语言实现的二叉搜索树详细代码:
```
#include <stdio.h>
#include <stdlib.h>
typedef struct TreeNode {
int data;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
/* 创建一个新的结点 */
TreeNode *createNode(int data) {
TreeNode *newNode = (TreeNode *)malloc(sizeof(TreeNode));
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
/* 将新结点插入二叉搜索树中 */
TreeNode *insert(TreeNode *node, int data) {
if (node == NULL) {
return createNode(data);
} else if (data < node->data) {
node->left = insert(node->left, data);
} else if (data > node->data) {
node->right = insert(node->right, data);
}
return node;
}
/* 中序遍历二叉搜索树 */
void inorderTraversal(TreeNode *node) {
if (node != NULL) {
inorderTraversal(node->left);
printf("%d ", node->data);
inorderTraversal(node->right);
}
}
int main() {
TreeNode *root = NULL;
int arr[] = { 5, 2, 9, 1, 5, 7, 10 };
int i, n = sizeof(arr) / sizeof(arr[0]);
/* 插入结点 */
for (i = 0; i < n; ++i) {
root = insert(root, arr[i]);
}
/* 中序遍历二叉搜索树 */
inorderTraversal(root);
return 0;
}
```
希望能帮到你!如果你还有其他问题,欢迎继续提问!
阅读全文