c语言用顺序结构建立二叉树
时间: 2024-10-30 11:04:18 浏览: 12
C语言数据结构之线索二叉树及其遍历
在C语言中,使用顺序结构(如数组或简单递归)构建二叉树通常涉及两个步骤:初始化节点数据和连接节点形成树形结构。这里是一个简单的示例,展示如何用顺序结构创建一个单链表表示的二叉树:
```c
// 定义二叉树节点结构
typedef struct TreeNode {
int val; // 节点值
struct TreeNode* left; // 左子节点指针
struct TreeNode* right; // 右子节点指针
} TreeNode;
// 顺序存储二叉树的函数
void createBinaryTree(int arr[], int n, TreeNode** root) {
*root = NULL; // 初始化根节点为NULL
if (n <= 0) return; // 如果数组为空,直接返回
TreeNode* current = *root;
for (int i = 0; i < n; i++) {
if (arr[i] == -1) break; // 标志结束,常用于数组形式的终止符
TreeNode* newNode = (TreeNode*)malloc(sizeof(TreeNode)); // 动态分配新节点
newNode->val = arr[i]; // 设置节点值
newNode->left = newNode->right = NULL; // 初始化左右子节点
if (!current) { // 如果当前节点为空,设置根节点
*root = newNode;
} else {
if (arr[i] < (*current)->val) { // 按顺序比较,左旋插入
current->left = newNode;
} else {
current->right = newNode;
}
current = newNode; // 移动到新节点
}
}
}
阅读全文