创建并存储一颗二叉树,要求从键盘输入各节点信息,存储方式为链式存储
时间: 2024-10-27 08:07:43 浏览: 13
在使用链式存储结构创建二叉树的过程中,通常我们会按照层次顺序依次输入节点信息,然后用递归的方式将它们链接起来。以下是创建并存储二叉树的基本步骤:
1. **定义二叉树节点**:
```c
struct Node {
int value; // 节点值
struct Node* left; // 左子节点指针
struct Node* right; // 右子节点指针
};
```
2. **输入节点值**:
```c
void insertValue(struct Node** current, int val) {
if (*current == NULL) { // 如果当前节点为空,创建新节点
*current = (struct Node*)malloc(sizeof(struct Node));
(*current)->value = val;
(*current)->left = (*current)->right = NULL;
} else if (val < (*current)->value) { // 根据值大小选择左子树或右子树
insertValue(&(*current)->left, val);
} else {
insertValue(&(*current)->right, val);
}
}
int main() {
struct Node* root = NULL;
while (true) {
int val;
printf("请输入节点值(输入0结束):");
scanf("%d", &val);
if (val == 0) break; // 输入0停止输入
insertValue(&root, val); // 插入节点到根节点
}
return 0;
}
```
在这个例子中,`insertValue`函数用于递归地将输入的节点值添加到相应位置。
阅读全文