创建并存储一颗二叉树,要求从键盘输入各节点信息,存储方式为式存储。(C语言数据结构)
时间: 2024-10-26 18:17:12 浏览: 26
data_structure_c.rar_Datastructure_data_structure_c_二叉树_二叉树 c++_
在C语言中,创建并存储一棵二叉树的典型方法是使用链表结构实现,因为二叉树的非递归遍历通常涉及到栈或队列,而使用链表可以方便地插入和删除节点。这里我们使用结构体表示二叉树的节点,并通过指向左右子节点的指针链接起来。以下是基本步骤:
1. 定义一个二叉树节点的数据结构(Node),包括整数值(data),以及两个指向左子节点(left)和右子节点(right)的指针。
```c
typedef struct Node {
int data;
struct Node* left;
struct Node* right;
} TreeNode;
```
2. 创建一个函数用于获取用户输入,构建新的节点:
```c
TreeNode* createNode(int value) {
TreeNode* newNode = (TreeNode*)malloc(sizeof(TreeNode));
newNode->data = value;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
```
3. 创建主函数,循环读取用户输入,直到输入结束:
```c
void insertTree(TreeNode** root, int value) {
if (*root == NULL) {
*root = createNode(value);
} else {
if (value < (*root)->data) {
insertTree(&((*root)->left), value);
} else {
insertTree(&((*root)->right), value);
}
}
}
int main() {
TreeNode* root = NULL;
int value;
printf("Enter values for the binary tree (or -1 to finish): ");
while ((value = getchar()) != -1 && value != EOF) {
// 转换字符到整数
value = value - '0';
insertTree(&root, value);
}
// ... 其他操作,如打印树、释放内存等
return 0;
}
```
阅读全文