# include <stdio.h>//由于getchar()函数每次只能读取一个字符,所以数字只能在0--9的范围内。
# include <malloc.h>
# define StackMaxSize 100
typedef struct
{
char stack[StackMaxSize];
int top;
}Stack1; //运算符栈
typedef struct
{
int stack[StackMaxSize];
int top;
}Stack2; //操作数栈
int In(char c)//判断字符是运算符还是操作数
{
if ((c=='+')||(c=='-')||(c=='*')||(c=='/')||(c=='#')||(c=='(')||(c==')'))
return 1;
else
return 0;
}
void InitStack1(Stack1 * S)//初始化Stack1类栈
{
S->top=-1;
}
void InitStack2(Stack2 * S)//初始化Stack2类栈
{
S->top=-1;
}
void push1(Stack1 * S, char ch)
{
(S->top)++;
# include <malloc.h>
# define StackMaxSize 100
typedef struct
{
char stack[StackMaxSize];
int top;
}Stack1; //运算符栈
typedef struct
{
int stack[StackMaxSize];
int top;
}Stack2; //操作数栈
int In(char c)//判断字符是运算符还是操作数
{
if ((c=='+')||(c=='-')||(c=='*')||(c=='/')||(c=='#')||(c=='(')||(c==')'))
return 1;
else
return 0;
}
void InitStack1(Stack1 * S)//初始化Stack1类栈
{
S->top=-1;
}
void InitStack2(Stack2 * S)//初始化Stack2类栈
{
S->top=-1;
}
void push1(Stack1 * S, char ch)
{
(S->top)++;