您的位置:首页 > 其它

NYOJ 257 郁闷的C小加(一)

2012-09-05 20:10 253 查看
http://acm.nyist.net/JudgeOnline/problem.php?pid=257

栈的应用....

View Code

#include <stdio.h>
#include <string.h>
#define maxn 1005
char stack[maxn],str[maxn],source[maxn];
int main()
{
int i,j,l,k,t,le,rear;
scanf("%d",&t);
while(t--)
{
scanf("%s",str);
le=strlen(str);
rear=-1;
l=0;
for(i=0;i<le;i++)
{
if(str[i]==')')
{
while(stack[rear]!='(')
{
source[l]=stack[rear];
l++;
rear--;
}
rear--;
}
else if('0'<=str[i] && str[i]<='9')
{
source[l]=str[i];
l++;
}
else if(str[i]=='(')
{
stack[++rear]=str[i];
}
else if(str[i]=='/' || str[i]=='*')
{
while(stack[rear]=='/' || stack[rear]=='*')
{
source[l]=stack[rear];
l++;
rear--;
}
stack[++rear]=str[i];
}
else
{
while(rear>=0 && stack[rear]!='(')
{
source[l]=stack[rear];
l++;
rear--;
}
stack[++rear]=str[i];
}
}
while(rear>=0)
{
source[l]=stack[rear];
l++;
rear--;
}
for(i=0;i<l;i++)
printf("%c",source[i]);
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: