创建二叉树c语言递归
时间: 2024-11-17 14:14:04 浏览: 1
C语言递归实现线索二叉树
在C语言中,创建二叉树通常通过递归的方式实现。二叉树是一种每个节点最多有两个子节点的数据结构,一般有左孩子和右孩子。这里是一个简单的例子,展示如何递归地构建一个二叉查找树:
```c
// 定义二叉树结点
typedef struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
// 创建一个新的二叉树结点
TreeNode* newNode(int val) {
TreeNode* node = (TreeNode*)malloc(sizeof(TreeNode));
if (node != NULL) {
node->val = val;
node->left = NULL;
node->right = NULL;
}
return node;
}
// 插入元素到二叉搜索树
TreeNode* insertIntoBST(TreeNode* root, int val) {
// 如果根为空,新值就是新的根节点
if (root == NULL) {
return newNode(val);
}
// 否则,比较值与当前节点的值
if (val < root->val) {
// 对左子树递归插入
root->left = insertIntoBST(root->left, val);
} else {
// 对右子树递归插入
root->right = insertIntoBST(root->right, val);
}
// 返回当前根节点
return root;
}
```
在这个`insertIntoBST`函数中,递归过程会持续直到找到空节点为止,然后在那里插入新的值。每次递归都会检查当前节点值是否大于或小于目标值,以此来决定向左还是向右移动。
阅读全文