1、【问题描述】从键盘输入二叉树的元素,建立二叉树,实现二叉树的遍历算法。【基本要求】实现以下基本操作:(1)从键盘输入二叉树的元素,建立二叉树。(2)实现二叉树的先序遍历算法。用c语言
时间: 2023-12-01 21:14:11 浏览: 22
以下是用 C 语言实现从键盘输入二叉树元素、建立二叉树和先序遍历算法的代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树节点结构体
typedef struct TreeNode {
int data;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
// 从键盘输入二叉树元素,返回二叉树根节点指针
TreeNode* createBinaryTree() {
TreeNode *root = NULL;
int data;
printf("输入二叉树的元素,以-1表示空节点:\n");
scanf("%d", &data);
if (data != -1) {
root = (TreeNode*)malloc(sizeof(TreeNode));
root->data = data;
root->left = createBinaryTree();
root->right = createBinaryTree();
}
return root;
}
// 先序遍历二叉树,递归实现
void preOrder(TreeNode *root) {
if (root != NULL) {
printf("%d ", root->data);
preOrder(root->left);
preOrder(root->right);
}
}
int main() {
TreeNode *root = createBinaryTree();
printf("先序遍历结果为:");
preOrder(root);
printf("\n");
return 0;
}
```
在上面的代码中,我们使用了递归的方式来遍历二叉树。先序遍历的过程是:先访问根节点,再遍历左子树,最后遍历右子树。