用c语言建立一个二叉链表
时间: 2024-02-13 20:00:54 浏览: 82
好的,下面是用 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 insert(TreeNode** root, int data) {
if(*root == NULL) {
*root = createNode(data);
return;
}
if(data < (*root)->data) {
insert(&((*root)->left), data);
} else if(data > (*root)->data) {
insert(&((*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;
insert(&root, 8);
insert(&root, 3);
insert(&root, 10);
insert(&root, 1);
insert(&root, 6);
insert(&root, 14);
insert(&root, 4);
insert(&root, 7);
insert(&root, 13);
printf("中序遍历结果:");
inorderTraversal(root);
return 0;
}
```
在这个示例代码中,我们定义了一个 `TreeNode` 结构体来表示二叉树的结点,其中包括了一个存储数据的 `data` 成员和指向左子树和右子树的指针 `left` 和 `right`。
我们还定义了一个 `createNode` 函数来创建新的二叉树结点,并返回该结点的指针。
在 `insert` 函数中,我们通过递归的方式将新的结点插入到二叉树中。如果当前节点为空,则说明这是树的根节点,我们直接创建一个新的结点作为根节点。否则,我们比较当前节点的值和新节点的值的大小关系,如果新节点的值小于当前节点的值,则递归插入到当前节点的左子树中,否则递归插入到当前节点的右子树中。
最后,我们定义了一个 `inorderTraversal` 函数来实现中序遍历二叉树,输出遍历结果。
在 `main` 函数中,我们创建一个空的二叉树,然后按照顺序插入一些数据,最后输出中序遍历的结果。
阅读全文
相关推荐
基于LSTM神经网络的温度预测分析
介绍
基于LSTM神经网络的温度预测分析,探索使用LSTM神经网络对中国湖北省孝感市的气温进行预测,并且评估其预测精度。
软件架构
软件架构说明
安装教程
pip install --save pandas numpy sklearn tensorflow
**目 录**
. 课程背景及意义 2]()
[2. 实验目的: 2]()
[3. 数据集: 3]()
[3.1 数据来源 3]()
[3.2 数据清洗 4]()
[3.3 数据标准化 4]()
[4. 实验步骤: 5]()
[4.1 数据获取 5]()
[4.2 数据处理 7]()
[4.3 LSTM模型构建与训练 10]()
[5. 结果分析 18]()
[6. 实验总结 21]()
1. # <a name