输出二叉树表示的表达式的后缀式,你给我写出代码用C语言
时间: 2023-12-03 12:44:52 浏览: 83
好的,下面是用C语言实现输出二叉树表达式的后缀式的代码:
```c
#include<stdio.h>
#include<stdlib.h>
struct Node {
char data;
struct Node* left;
struct Node* right;
};
// 创建一个新节点
struct Node* newNode(char data) {
struct Node* node = (struct Node*)malloc(sizeof(struct Node));
node->data = data;
node->left = NULL;
node->right = NULL;
return node;
}
// 输出二叉树表达式的后缀式
void postfix(struct Node* root) {
if (root == NULL) {
return;
}
postfix(root->left);
postfix(root->right);
printf("%c ", root->data);
}
int main() {
struct Node* root = newNode('+');
root->left = newNode('*');
root->left->left = newNode('a');
root->left->right = newNode('b');
root->right = newNode('-');
root->right->left = newNode('c');
root->right->right = newNode('d');
printf("后缀式:");
postfix(root);
return 0;
}
```
该代码输出的结果为:
```
后缀式:a b * c d - +
```
其中,表达式的二叉树如下所示:
```
+
/ \
* -
/ \ / \
a b c d
```
阅读全文