数据结构实验之栈三:后缀式求值
来源:互联网 发布:猎头搜 知乎 编辑:程序博客网 时间:2024/04/27 16:02
数据结构实验之栈三:后缀式求值
Time Limit: 1000MS Memory limit: 65536K
题目描述
输入
输出
示例输入
59*684/-3*+#
示例输出
57
提示
基本操作数都是一位正整数!
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define maxsize 10000
#define sizenum 10000
typedef struct
{
int *base;
int *top;
int stsize;
}Sq;
int stack_Init(Sq*s)//?????§????
{
s->base=(int *)malloc(maxsize*sizeof(int));
if(!s->base)
exit(0);
s->top=s->base;
s->stsize=maxsize;
return 1;
}
void push(Sq*s,char *e)
{
if(s->top-s->base>s->stsize)
{
s->base=(int *)realloc(s->base,(s->stsize+sizenum)*sizeof(int));
if(!s->base)
exit(0);
s->top=s->base+s->stsize;
s->stsize+=sizenum;
}
*++s->top=*e-'0';
}
void choose(Sq*s,char a[])
{
int i,len=strlen(a);
for(i=0;i<len;i++)
{
if(a[i]=='#')
break;
if(a[i]>='0'&&a[i]<='9')
push(s,&a[i]);
else
{
switch(a[i])
{
case'+':*(s->top-1)+=*(s->top);
break;
case'-':*(s->top-1)-=*(s->top);
break;
case'*':*(s->top-1)*=*(s->top);
break;
case'/':*(s->top-1)/=*(s->top);
break;
}
s->top--;
}
}
printf("%d\n",*(s->top));
}
int main()
{
Sq s;
char a[maxsize];
gets(a);
stack_Init(&s);
choose(&s,a);
return 0;
}
- SDUT2133数据结构实验之栈三:后缀式求值(栈)
- 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值
- SDUT 2133 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值
- SDUT 2133 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值
- SDUT 3133 数据结构实验之栈三:后缀式求值
- 数据结构实验之栈三:后缀式求值 SDUT 2133
- 数据结构实验之栈三:后缀式求值
- Android 存储方式
- 数据结构--大小堆
- Library not loaded xxxx.framework Reason: image not found
- Qtextedit 中插入图片的方法
- 在 Linq 中使用 AsParallel 时自定义分块(Partitioners)
- 数据结构实验之栈三:后缀式求值
- poj3046 划分数dp
- Linux如何查看进程、杀死进程、启动进程等常用命令
- 通过Jedis客户端连接不到redis
- encodeURI来解决URL传递时为什么需要进行两次encodeURI编码
- tomcat下部署webservice axis
- tomcat-redis-session-manager的使用
- Linux查看进程所使用资源限制
- ViewService——一种保证客户端与服务端同步的方法