#include<stdio.h>
#include<stdlib.h>
#define DEBUG
struct Node;
typedef struct Node *ptr;
typedef ptr Stack;
struct Node
{
char cha;
ptr next;
};
Stack CreatStack();
void Push(char,Stack);
void Pop(Stack);
char Top(Stack);
int IsEmpty(Stack);
void MakeEmpty(Stack);
int main()
{
char cha;
Stack s=CreatStack();
while(scanf("%c",&cha)!=EOF)
{
if(cha=='\n')
{
while(!IsEmpty(s))
{printf("%c",Top(s)); Pop(s);}
continue;
} // 清栈
else
{
if(cha!='+'&&cha!='*'&&cha!='-'&&cha!='/'&&cha!='('&&cha!=')')
printf("%c",cha);
else
{
if(cha=='(')
Push(cha,s);
else
if(cha==')')
{
while(Top(s)!='(')
{printf("%c",Top(s)); Pop(s);}
Pop(s);
}
else
if(cha=='*'||cha=='/')
{
while(!IsEmpty(s)&&Top(s)!='+'&&Top(s)!='-'&&Top(s)!='(')
{printf("%c",Top(s)); Pop(s);}
Push(cha,s);
}
else
{
while(!IsEmpty(s)&&Top(s)!='(')
{printf("%c",Top(s)); Pop(s);}
Push(cha,s);
}
}
}
}
system("pause");
return 0;
}