用c语言建立一个二叉链表
时间: 2024-03-27 12:41:17 浏览: 19
好的,下面是用C语言建立一个二叉链表的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树结构体
typedef struct node {
int data; // 数据域
struct node *left; // 左子树
struct node *right; // 右子树
} TreeNode, *Tree;
// 创建二叉树节点
Tree createNode(int data) {
Tree node = (Tree) malloc(sizeof(TreeNode));
node->data = data;
node->left = NULL;
node->right = NULL;
return node;
}
// 插入节点
Tree insertNode(Tree root, int data) {
if (!root) {
root = createNode(data);
return root;
}
if (data < root->data) {
root->left = insertNode(root->left, data);
} else {
root->right = insertNode(root->right, data);
}
return root;
}
// 中序遍历
void inorderTraversal(Tree root) {
if (root) {
inorderTraversal(root->left);
printf("%d ", root->data);
inorderTraversal(root->right);
}
}
int main() {
Tree root = NULL; // 定义二叉树根节点
int data[] = {5, 3, 7, 2, 4, 6, 8};
int i, len = sizeof(data) / sizeof(int);
for (i = 0; i < len; ++i) {
root = insertNode(root, data[i]); // 插入节点
}
inorderTraversal(root); // 中序遍历
return 0;
}
```
代码中使用了递归的方式来创建二叉树节点和插入节点。在主函数中,我们定义了一个数组来初始化二叉树,然后通过循环插入节点。最后,通过中序遍历来输出二叉树节点的值。