C语言 二叉树插入节点
时间: 2023-12-10 12:34:50 浏览: 68
在C语言中,二叉树的插入节点可以通过递归实现。具体步骤如下:
1.定义一个结构体来表示二叉树的节点,包括节点的值和左右子节点指针。
2.定义一个函数来插入节点,函数需要传入二叉树的根节点指针和要插入的节点值。
3.如果根节点为空,说明这是一棵空树,直接将要插入的节点作为根节点。
4.如果要插入的节点值小于根节点的值,则递归调用插入函数,将要插入的节点插入到左子树中。
5.如果要插入的节点值大于根节点的值,则递归调用插入函数,将要插入的节点插入到右子树中。
6.如果要插入的节点值等于根节点的值,则说明这个节点已经存在,不需要插入。
下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树节点结构体
typedef struct TreeNode {
int val; struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
// 插入节点函数
void insert(TreeNode **root, int val) {
if (*root == NULL) {
// 如果根节点为空,直接将要插入的节点作为根节点
*root = (TreeNode *)malloc(sizeof(TreeNode));
(*root)->val = val;
(*root)->left = NULL;
(*root)->right = NULL;
} else if (val < (*root)->val) {
// 如果要插入的节点值小于根节点的值,则递归调用插入函数,将要插入的节点插入到左子树中
insert(&((*root)->left), val);
} else if (val > (*root)->val) {
// 如果要插入的节点值大于根节点的值,递归调用插入函数,将要插入的节点插入到右子树中
insert(&((*root)->right), val);
}
}
// 测试代码
int main() {
TreeNode *root = NULL;
insert(&root, 5);
insert(&root, 3);
insert(&root, 7);
insert(&root, 1);
insert(&root, 9);
return 0;
}
```