用C语言实现一个函数,输出二叉树表示的表达式的后缀式。
时间: 2024-05-07 09:17:38 浏览: 123
以下是用C语言实现输出二叉树表示的表达式的后缀式的函数:
```c
#include<stdio.h>
#include<stdlib.h>
// 定义二叉树节点的数据结构
typedef struct node
{
char data;
struct node *left;
struct node *right;
} BTree;
// 创建二叉树节点的函数
BTree *createNode(char ch)
{
BTree *newNode = (BTree*)malloc(sizeof(BTree));
newNode->data = ch;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
// 输出二叉树表示的表达式的后缀式的函数
void postOrder(BTree *root)
{
if(root == NULL)
{
return;
}
postOrder(root->left);
postOrder(root->right);
printf("%c ", root->data);
}
int main()
{
// 构建以下二叉树
// a
// / \
// b c
// / \
// d e
BTree *root = createNode('a');
root->left = createNode('b');
root->right = createNode('c');
root->left->left = createNode('d');
root->left->right = createNode('e');
printf("后缀式为:");
postOrder(root);
return 0;
}
```
输出:
```
后缀式为:d e b c a
```
这里我们采用了二叉树的后序遍历(左子树、右子树、根节点),即先输出左子树的后缀式,再输出右子树的后缀式,最后输出根节点。这样就能得到二叉树表示的表达式的后缀式。
阅读全文