Chinaunix首页 | 论坛 | 博客
  • 博客访问: 607667
  • 博文数量: 172
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 1252
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-29 22:26
文章分类

全部博文(172)

文章存档

2011年(6)

2010年(7)

2009年(159)

我的朋友

分类: LINUX

2009-11-08 15:49:22

#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为对下推栈的操作函数
阅读(1621) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~