用c语言建立一个二叉链表
时间: 2024-02-18 09:03:42 浏览: 29
好的,下面是用C语言建立一个二叉链表的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树结构体
typedef struct TreeNode {
int data; // 数据域
struct TreeNode* left; // 左子节点
struct TreeNode* right; // 右子节点
} TreeNode;
// 创建节点
TreeNode* createNode(int data) {
TreeNode* node = (TreeNode*)malloc(sizeof(TreeNode));
node->data = data;
node->left = NULL;
node->right = NULL;
return node;
}
// 将节点插入二叉树
void insertNode(TreeNode** root, int data) {
if (*root == NULL) {
*root = createNode(data);
return;
}
if (data < (*root)->data) {
insertNode(&((*root)->left), data);
} else {
insertNode(&((*root)->right), data);
}
}
// 中序遍历二叉树
void inorderTraversal(TreeNode* root) {
if (root == NULL) {
return;
}
inorderTraversal(root->left);
printf("%d ", root->data);
inorderTraversal(root->right);
}
int main() {
TreeNode* root = NULL;
insertNode(&root, 5);
insertNode(&root, 3);
insertNode(&root, 7);
insertNode(&root, 1);
insertNode(&root, 9);
printf("中序遍历结果:");
inorderTraversal(root);
return 0;
}
```
在上面的代码中,我们定义了一个二叉树的结构体 `TreeNode`,其中包含了数据域和左右子节点指针。然后我们实现了创建节点的函数 `createNode` 和将节点插入二叉树的函数 `insertNode`。在 `insertNode` 函数中,我们通过递归的方式找到合适的位置插入节点。
最后,我们实现了中序遍历二叉树的函数 `inorderTraversal`,并在 `main` 函数中插入了一些节点并进行了中序遍历。这样就完成了一个简单的二叉链表的建立。