参考数据结构与算法分析 C++描述。代码如下:
#include <iostream>
#include <stack>
#define ISCHAR 1
#define ISOPERATOR 2
#define OTHER 0
using namespace std;
struct BinaryNode
{
char c;
BinaryNode *left;
BinaryNode *right;
BinaryNode(char _c,BinaryNode *node1,BinaryNode *node2)
{
c=_c;
left=node1;
right=node2;
}
};
int isCharOrOperator(char c)
{
if(c>='a' && c<='z' || c>='A' && c<='Z')
return ISCHAR;
if(c=='+' || c=='-' || c=='*' || c=='/')
return ISOPERATOR;
return OTHER;
}
void traverse(BinaryNode *node)
{
if (node!=NULL)
{
traverse(node->left);
cout<<node->c;
traverse(node->right);
}
}
int main()
{
stack<BinaryNode *> charStack;
char c='0';
while(cin>>c && c!='0')
{
if(ISCHAR=