简单表达式求值
2006-10-25 13:23
316 查看
此表达式求值程序利用Stack实现
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
/**//******************************
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Date:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
2006 - 10 -24
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Description:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
This programe is aiming to
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
carry out operator counting by
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
using of sequence stack
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
*******************************/
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
#include "stdio.h"
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
#define MAXSIZE 128
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
typedef char DataType;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
int pIFX = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
int pPFX = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
int pTP = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
/**//***Define a Stack Struct***/
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
typedef struct
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
DataType stack[MAXSIZE];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}SeqStack;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
/**//**********初始化PFX IFX************/
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
SeqStack PFX;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
SeqStack IFX;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
SeqStack TP;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
/**//***************************
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Function: Stack push
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Param: SeqStack ss, char dat
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Return: SeqStack
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
****************************/
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
SeqStack Push(SeqStack s, char dat)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
s.stack[pPFX] = dat;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
return s;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
/**//***************************
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Function: Stack pop
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Param: SeqStack ss, char dat
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Return: SeqStack
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
****************************/
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
SeqStack Pop(SeqStack s, char dat)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
int CtoD(char c)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
return(c - '0');
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
char DtoC(int x)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
return(x + 48);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
char InputPression(void)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
int i = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
char ch;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
scanf("%c",&ch);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
while(ch!= '=')
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
IFX.stack[i ++] = ch;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
scanf("%c",&ch);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
IFX.stack[i] = '=';
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
void PrintStack(SeqStack s)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
int i = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
while(s.stack[i] != '=')
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
printf("%c",s.stack[i++]);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
getchar();
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
getchar();
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
SeqStack toSufix()
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
int pIFX = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
char ch;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
TP.stack[pTP++] = '=';
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
while(IFX.stack[pIFX]!= '=')
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
ch = IFX.stack[pIFX];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
switch(ch)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '0':case '1':case '2':case '3':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '4':case '5':case '6':case '7':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '8': case'9':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
PFX.stack[pPFX++] = ch;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
break;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '(':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
TP.stack[++pTP] = '(';
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
break;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case ')':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
while(TP.stack[pTP] != '(')
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
PFX.stack[pPFX++] = TP.stack[pTP];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
pTP--;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
pTP--;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
break;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '+':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '-':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
while(
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
(pTP > 1 && TP.stack[pTP] != '(') &&
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
(TP.stack[pTP]== '+' || TP.stack[pTP]== '-')
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
PFX.stack[pPFX++] = TP.stack[pTP--];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
pTP ++;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
TP.stack[pTP]= ch;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
break;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '*':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '/':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
while(
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
pTP > 1 &&
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
(TP.stack[pTP]== '*' || TP.stack[pTP]== '/')
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
PFX.stack[pPFX++] = TP.stack[pTP--];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
pTP++;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
TP.stack[pTP] = ch;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
break;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
}/**//*end switch*/
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
pIFX++;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
}/**//*end while*/
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
while(pTP > 1)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
PFX.stack[pPFX++] = TP.stack[pTP--];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
PFX.stack[pPFX] = '=';
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
int Computing()
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
char ch;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
char tmp1;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
char tmp2;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
int tmp;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
pPFX = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
pIFX = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
pTP = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
while(PFX.stack[pPFX]!= '=')
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
ch = PFX.stack[pPFX];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
switch(ch)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '0':case '1':case '2':case '3':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '4':case '5':case '6':case '7':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '8': case'9':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
pTP++;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
TP.stack[pTP] = ch;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
break;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '+':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp1 = TP.stack[pTP--];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp2 = TP.stack[pTP--];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp = CtoD(tmp1) + CtoD(tmp2);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
TP.stack[++pTP] = DtoC(tmp);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
break;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '-':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp1 = TP.stack[pTP--];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp2 = TP.stack[pTP--];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp = CtoD(tmp1) - CtoD(tmp2);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
TP.stack[++pTP] = DtoC(tmp);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
break;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '*':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp1 = TP.stack[pTP--];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp2 = TP.stack[pTP--];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp = CtoD(tmp1) * CtoD(tmp2);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
TP.stack[++pTP] = DtoC(tmp);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
break;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '/':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp1 = TP.stack[pTP--];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp2 = TP.stack[pTP--];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp = CtoD(tmp1) / CtoD(tmp2);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
TP.stack[++pTP] = DtoC(tmp);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
break;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
}/**//*end switch*/
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
pPFX ++;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
}/**//*end while*/
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
return(CtoD(TP.stack[1]));
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
/**//******************************
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Main Function
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
*******************************/
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
int main()
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
printf("Input count pression: ");
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
InputPression();
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
PrintStack(IFX);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
PFX = toSufix();
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
PrintStack(PFX);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
printf("%d",Computing());
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
getchar();
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
未完成...
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
/**//******************************
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Date:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
2006 - 10 -24
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Description:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
This programe is aiming to
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
carry out operator counting by
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
using of sequence stack
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
*******************************/
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
#include "stdio.h"
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
#define MAXSIZE 128
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
typedef char DataType;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
int pIFX = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
int pPFX = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
int pTP = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
/**//***Define a Stack Struct***/
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
typedef struct
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
DataType stack[MAXSIZE];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}SeqStack;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
/**//**********初始化PFX IFX************/
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
SeqStack PFX;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
SeqStack IFX;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
SeqStack TP;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
/**//***************************
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Function: Stack push
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Param: SeqStack ss, char dat
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Return: SeqStack
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
****************************/
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
SeqStack Push(SeqStack s, char dat)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
s.stack[pPFX] = dat;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
return s;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
/**//***************************
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Function: Stack pop
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Param: SeqStack ss, char dat
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Return: SeqStack
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
****************************/
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
SeqStack Pop(SeqStack s, char dat)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
int CtoD(char c)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
return(c - '0');
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
char DtoC(int x)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
return(x + 48);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
char InputPression(void)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
int i = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
char ch;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
scanf("%c",&ch);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
while(ch!= '=')
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
IFX.stack[i ++] = ch;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
scanf("%c",&ch);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
IFX.stack[i] = '=';
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
void PrintStack(SeqStack s)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
int i = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
while(s.stack[i] != '=')
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
printf("%c",s.stack[i++]);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
getchar();
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
getchar();
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
SeqStack toSufix()
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
int pIFX = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
char ch;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
TP.stack[pTP++] = '=';
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
while(IFX.stack[pIFX]!= '=')
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
ch = IFX.stack[pIFX];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
switch(ch)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '0':case '1':case '2':case '3':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '4':case '5':case '6':case '7':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '8': case'9':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
PFX.stack[pPFX++] = ch;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
break;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '(':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
TP.stack[++pTP] = '(';
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
break;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case ')':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
while(TP.stack[pTP] != '(')
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
PFX.stack[pPFX++] = TP.stack[pTP];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
pTP--;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
pTP--;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
break;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '+':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '-':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
while(
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
(pTP > 1 && TP.stack[pTP] != '(') &&
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
(TP.stack[pTP]== '+' || TP.stack[pTP]== '-')
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
PFX.stack[pPFX++] = TP.stack[pTP--];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
pTP ++;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
TP.stack[pTP]= ch;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
break;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '*':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '/':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
while(
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
pTP > 1 &&
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
(TP.stack[pTP]== '*' || TP.stack[pTP]== '/')
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
PFX.stack[pPFX++] = TP.stack[pTP--];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
pTP++;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
TP.stack[pTP] = ch;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
break;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
}/**//*end switch*/
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
pIFX++;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
}/**//*end while*/
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
while(pTP > 1)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
PFX.stack[pPFX++] = TP.stack[pTP--];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
PFX.stack[pPFX] = '=';
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
int Computing()
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
char ch;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
char tmp1;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
char tmp2;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
int tmp;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
pPFX = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
pIFX = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
pTP = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
while(PFX.stack[pPFX]!= '=')
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
ch = PFX.stack[pPFX];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
switch(ch)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '0':case '1':case '2':case '3':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '4':case '5':case '6':case '7':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '8': case'9':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
pTP++;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
TP.stack[pTP] = ch;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
break;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '+':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp1 = TP.stack[pTP--];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp2 = TP.stack[pTP--];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp = CtoD(tmp1) + CtoD(tmp2);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
TP.stack[++pTP] = DtoC(tmp);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
break;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '-':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp1 = TP.stack[pTP--];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp2 = TP.stack[pTP--];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp = CtoD(tmp1) - CtoD(tmp2);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
TP.stack[++pTP] = DtoC(tmp);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
break;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '*':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp1 = TP.stack[pTP--];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp2 = TP.stack[pTP--];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp = CtoD(tmp1) * CtoD(tmp2);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
TP.stack[++pTP] = DtoC(tmp);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
break;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
case '/':
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp1 = TP.stack[pTP--];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp2 = TP.stack[pTP--];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
tmp = CtoD(tmp1) / CtoD(tmp2);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
TP.stack[++pTP] = DtoC(tmp);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
break;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
}/**//*end switch*/
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
pPFX ++;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
}/**//*end while*/
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
return(CtoD(TP.stack[1]));
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
/**//******************************
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Main Function
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
*******************************/
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
int main()
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
printf("Input count pression: ");
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
InputPression();
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
PrintStack(IFX);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
PFX = toSufix();
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
PrintStack(PFX);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
printf("%d",Computing());
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
getchar();
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
未完成...
相关文章推荐
- hdu1237简单表达式求值(我多判断了())
- 简单表达式求值(用栈实现)
- 百度的科学计算器(简单) Python 库函数实现表达式求值
- NYOJ 305 表达式求值 (简单栈应用)
- 利用栈实现简单算术表达式求值
- Openjudge-计算概论(A)-简单算术表达式求值
- 编程练习:简单表达式求值
- 包含简单科学运算的表达式求值
- Openjudge-NOI题库-简单算术表达式求值
- [计蒜客 15504 百度的科学计算器(简单)]表达式求值
- OpenJudge计算概论-简单算术表达式求值
- 简单算术表达式求值
- 问题 H: 简单表达式求值
- 简单算术表达式求值
- 简单算术表达式求值
- VB.NET编程技巧与实例集粹 Module5_输入简单表达式并求值
- 简单表达式求值
- 二叉树显示(图形界面,控制台字符),简单表达式求值,pyqt,swig初试....
- 栈的应用_简单表达式求值
- 实现简单的表达式求值