数据结构c语言二叉树的创建代码
时间: 2024-10-16 15:06:56 浏览: 30
在C语言中,我们可以使用递归的方式来创建一个基本的二叉树数据结构。下面是一个简单的示例,展示了如何创建一个二叉树节点并插入节点:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树节点结构体
typedef struct TreeNode {
int data; // 节点值
struct TreeNode* left; // 左孩子指针
struct TreeNode* right; // 右孩子指针
} TreeNode;
// 创建新节点函数
TreeNode* createNode(int value) {
TreeNode* newNode = (TreeNode*)malloc(sizeof(TreeNode));
if (newNode == NULL) {
printf("Memory allocation failed!\n");
return NULL;
}
newNode->data = value;
newNode->left = newNode->right = NULL;
return newNode;
}
// 插入节点到二叉搜索树
TreeNode* insertNode(TreeNode* root, int value) {
if (root == NULL) { // 如果根节点为空,创建新节点
return createNode(value);
}
// 比较新值与当前节点,选择左或右子树进行递归插入
if (value < root->data)
root->left = insertNode(root->left, value);
else if (value > root->data)
root->right = insertNode(root->right, value);
return root;
}
int main() {
TreeNode* root = NULL; // 初始化空树
// 插入一些测试数据
root = insertNode(root, 50);
insertNode(root, 30);
insertNode(root, 70);
insertNode(root, 20);
insertNode(root, 40);
insertNode(root, 60);
insertNode(root, 80);
// 打印二叉树(这里省略了打印代码)
return 0;
}
```
这个代码首先定义了一个`TreeNode`结构体表示二叉树节点,并实现了创建节点和插入节点的函数。在`main`函数中,我们创建了一个空树并插入了一些元素。
阅读全文