C语言实现二叉查找树(搜索树)的创建
时间: 2023-06-02 11:06:13 浏览: 167
好的,对于二叉查找树的创建,我们可以先定义一个二叉树的节点结构体,包含左右子树指针和节点值。然后定义一个函数,通过递归的方式按照节点值的大小关系,将新节点插入到树中的合适位置。具体实现可以参考下面的 C 语言代码:
```
#include <stdio.h>
#include <stdlib.h>
typedef struct Node{
int val;
struct Node *left, *right;
}Node;
Node* createNode(int val){
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->val = val;
newNode->left = newNode->right = NULL;
return newNode;
}
Node* insert(Node* root, int val){
if(root == NULL){
return createNode(val);
}
if(val < root->val){
root->left = insert(root->left, val);
}
else if(val > root->val){
root->right = insert(root->right, val);
}
return root;
}
void inorder(Node* root){
if(root != NULL){
inorder(root->left);
printf("%d ", root->val);
inorder(root->right);
}
}
int main(){
Node* root = NULL;
root = insert(root, 50);
insert(root, 30);
insert(root, 20);
insert(root, 40);
insert(root, 70);
insert(root, 60);
insert(root, 80);
inorder(root);
return 0;
}
```
以上代码是一个简单的二叉查找树创建和遍历的实现,其中 `createNode` 函数用于创建新节点,`insert` 函数用于递归插入节点,并且保证根节点的值比左子树的值大,比右子树的值小,最后 `inorder` 函数用于中序遍历整个树。
阅读全文