从键盘输入二叉树的元素,建立二叉树,实现二叉树的遍历算法。 【基本要求】 实现以下基本操作: (1)从键盘输入二叉树的元素,建立二叉树。 (2)实现二叉树的先序遍历算法。用c语言实现
时间: 2023-12-01 07:08:44 浏览: 27
好的,以下是代码实现,包含从键盘输入二叉树元素,建立二叉树,实现二叉树的先序遍历算法的基本操作:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树结构体
typedef struct TreeNode {
char data; // 节点数据
struct TreeNode *left; // 左子树
struct TreeNode *right; // 右子树
} TreeNode;
// 创建二叉树
TreeNode* createTree() {
char c;
scanf("%c", &c); // 从键盘读入字符
if (c == '#') { // 如果是#,表示该节点为空
return NULL;
}
TreeNode *root = (TreeNode*)malloc(sizeof(TreeNode)); // 创建根节点
root->data = c;
// 递归创建左子树和右子树
root->left = createTree();
root->right = createTree();
return root;
}
// 先序遍历二叉树
void preOrder(TreeNode *root) {
if (root == NULL) { // 如果节点为空,直接返回
return;
}
printf("%c ", root->data); // 输出当前节点的数据
preOrder(root->left); // 递归遍历左子树
preOrder(root->right); // 递归遍历右子树
}
int main() {
printf("请输入二叉树的元素(以先序遍历的顺序输入,空节点用#表示):\n");
TreeNode *root = createTree(); // 创建二叉树
printf("先序遍历结果为:");
preOrder(root); // 先序遍历二叉树
printf("\n");
return 0;
}
```
该程序先从键盘读入二叉树的元素,以先序遍历的顺序输入,空节点用#表示。然后通过createTree()函数创建二叉树,并通过preOrder()函数实现先序遍历算法,输出遍历结果。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)