从键盘输入二叉树的元素,建立二叉树,实现二叉树的遍历算法。 实现以下基本操作: (1)从键盘输入二叉树的元素,建立二叉树。 实现二叉树的后序遍历算法。用c语言
时间: 2023-12-01 09:14:14 浏览: 141
用C语言程实现树的遍历(算法)。分出先序,中序,后序
好的,我来解答这个问题。
首先,我们需要定义二叉树的结构体:
```c
typedef struct TreeNode {
int value;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
```
然后,我们可以定义一个函数来创建二叉树:
```c
TreeNode* createTree() {
TreeNode* root = NULL;
int value;
printf("请输入节点的值(输入-1表示空节点):");
scanf("%d", &value);
if (value == -1) {
return NULL;
} else {
root = (TreeNode*)malloc(sizeof(TreeNode));
root->value = value;
root->left = createTree();
root->right = createTree();
}
return root;
}
```
这个函数会递归地从键盘输入二叉树的元素,并返回根节点。
接下来,我们可以实现二叉树的后序遍历算法:
```c
void postorderTraversal(TreeNode* root) {
if (root == NULL) {
return;
}
postorderTraversal(root->left);
postorderTraversal(root->right);
printf("%d ", root->value);
}
```
这个函数会递归地遍历左子树、右子树,最后遍历根节点,并打印节点的值。
最后,我们可以在主函数中调用这些函数:
```c
int main() {
TreeNode* root = createTree();
printf("后序遍历结果:");
postorderTraversal(root);
return 0;
}
```
这个程序会从键盘输入二叉树的元素,创建二叉树,并输出后序遍历结果。
希望这个答案能够帮助到你。
阅读全文