二叉树代码实现用c语言实现
时间: 2024-09-18 18:16:14 浏览: 42
在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) {
printf("Memory allocation failed.\n");
return NULL;
}
newNode->data = value;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
// 插入节点到二叉树
void insertNode(TreeNode** root, int value) {
if (*root == NULL) { // 如果根节点为空,创建新节点作为根
*root = createNode(value);
} else {
if (value < (*root)->data) { // 向左子树递归插入
insertNode(&(*root)->left, value);
} else if (value > (*root)->data) { // 向右子树递归插入
insertNode(&(*root)->right, value);
}
}
}
// 示例用法
int main() {
TreeNode* root = NULL;
insertNode(&root, 50); // 插入50
insertNode(&root, 30);
insertNode(&root, 20);
insertNode(&root, 40);
insertNode(&root, 70);
insertNode(&root, 60);
// 输出二叉树的节点值(仅做示例,实际应用中可以添加遍历函数)
// printTree(root);
return 0;
}
```
在这个例子中,`insertNode` 函数用于将新的值插入到正确的子树位置,而`main`函数展示了如何使用这个功能。
阅读全文