从键盘输入二叉树的元素,建立二叉树,实现二叉树的遍历算法。 【基本要求】 实现以下基本操作: (1) 从键盘输入二叉树的元素,建立二叉树。 (2) 实现二叉树的中序遍历算法。用c语言
时间: 2023-12-01 13:14:01 浏览: 104
好的,我会为您解答这个问题。以下是实现二叉树的元素输入和中序遍历算法的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 二叉树节点结构体
typedef struct TreeNode {
int data; // 节点数据
struct TreeNode* left; // 左子节点指针
struct TreeNode* right; // 右子节点指针
} TreeNode;
// 从键盘输入二叉树的元素,建立二叉树
TreeNode* createTree() {
int data;
scanf("%d", &data);
if (data == -1) { // 输入-1表示该节点为空
return NULL;
}
TreeNode* root = (TreeNode*)malloc(sizeof(TreeNode)); // 创建新节点
root->data = data;
root->left = createTree(); // 递归创建左子树
root->right = createTree(); // 递归创建右子树
return root;
}
// 实现二叉树的中序遍历算法
void inorderTraversal(TreeNode* root) {
if (root == NULL) {
return;
}
inorderTraversal(root->left); // 遍历左子树
printf("%d ", root->data); // 输出节点值
inorderTraversal(root->right); // 遍历右子树
}
int main() {
printf("请输入二叉树的元素,以-1表示该节点为空:\n");
TreeNode* root = createTree(); // 创建二叉树
printf("中序遍历结果为:");
inorderTraversal(root); // 中序遍历
printf("\n");
return 0;
}
```
以上代码实现了从键盘输入二叉树的元素,建立二叉树,并实现了中序遍历算法。您可以将其复制到您的C语言编译器中运行,来体验二叉树的创建和遍历过程。
阅读全文