#include <stdio.h>
#include <string.h>
#include "STACK.h"
int main(int argc, char *argv[])
{
char *a = argv[1]; int i, N = strlen(a);
STACKinit(N);
for (i = 0; i < N; i++)
{
if (a[i] == '+')
STACKpush(STACKpop()+STACKpop());
if (a[i] == '*')
STACKpush(STACKpop()*STACKpop());
if ((a[i] >= '0') && (a[i] <= '9'))
STACKpush(0);
while ((a[i] >= '0') && (a[i] <= '9'))
STACKpush(10*STACKpop() + (a[i++]-'0'));
}
printf("%d \n", STACKpop());
return 0;
}
|
其中STACKpush,STACKpop,STACKinit为对下推栈的操作函数
阅读(1687) | 评论(0) | 转发(0) |