本题要求实现一个函数,输出二叉树表示的表达式的后缀式。输入一个表达式的前缀形式(该表达式二叉树的扩展的先序序列),构造该二叉树,并输出其后序序列即为该表达式的后缀形式。void creat(BiTree &Tree)//构建二叉树 void PostOrder(BiTree Tree)//输出后缀表达式
时间: 2024-02-19 07:57:24 浏览: 122
好的,我知道了!这是一个关于二叉树的问题,需要实现构建二叉树和输出后缀表达式的功能。下面是实现代码:
```
#include<iostream>
#include<stack>
using namespace std;
typedef struct BiNode{
char data;
struct BiNode *lchild,*rchild;
}BiNode,*BiTree;
void creat(BiTree &Tree)//构建二叉树
{
char ch;
cin>>ch;
if(ch=='#') Tree=NULL;
else{
Tree=new BiNode;
Tree->data=ch;
creat(Tree->lchild);
creat(Tree->rchild);
}
}
void PostOrder(BiTree Tree)//输出后缀表达式
{
if(Tree){
PostOrder(Tree->lchild);
PostOrder(Tree->rchild);
cout<<Tree->data;
}
}
int main()
{
BiTree Tree;
creat(Tree);
PostOrder(Tree);
return 0;
}
```
使用时,输入二叉树的扩展的先序序列,例如:`-+a*bcd#e`,其中`#`表示空节点,构造二叉树后输出后缀表达式,即为:`ab*cd*+e-`。
注意:输入时要有空格,如:`- + a * b c d # e`。
阅读全文