游客已登陆 (0)未知
笔行证 257310
昵称 kuan 
笔贝 Score1
加为好友 发送短信
<< << 2008 十一月 >> >>
1
2345678
9101112131415
16171819202122
23242526272829
30

访问计数:23526
本文:335 今天:1 本月 121

本地音乐播放器



 
       前缀表达式转后缀表达式
2007-04-12 晴



int Precedence(char op)
{
switch(op)
{
case'+':
case'-':
return 1;
case'*':
case'/':
return 2;
case'(':
case'@':
default:
return 0;
}
}

void Change(char *s1, char *s2)
{
Stack R;
InistStack(R);
Push(R, '@');
int i,j;
i=0;
j=0;
char ch = s1;
while(ch != '@')
{
if(ch == ' ')
{
ch = s1[++i];//对空格字符不做任何处理,顺序读取下一个字符
}
else if(ch == '(')//左括号,直接进栈
{
Push(R, ch);
ch = s1[++i];
}
else if(ch == ')')
{
while(Peek(R) != '(')
s2[j++]=Pop(R);
Pop(R);
ch=s1[++i];
}
else if(ch == '+' || ch == '-' || ch == '*' || ch == '/')
{
char w=Peek(R);
while(Precedence(w) >= Precedence(ch))
{
s2[j++]=w;
Pop(R);
w=Peek(R);
}
Push(R, ch);
ch = S1[++i];
}
else
{
while(isdigit(ch) || ch == '.')
s2[j++]=ch;
ch = s1[++i];
}
s2[j++]=' ';
}


ch = Pop(R);
while(ch != '@')
{
if(ch == '(')
{
cerr<<"expreession error!"<<endl;
exit(1);
}
else
{
s2[j++]=ch;
ch=Pop(R);
}
}
s2[j++]='@';
s2[j++]='{showtable}
 
       {blogarticletitle}
{date} {week} {weather}

{source}

{conment}.
# posted by{author}@ {date} {time} 评论(0)
 

{/showtable}';
}.
# posted by kuan @ 2007-04-12 12:54:26 评论(0)
 








 
笔 名:
*
评 论:
最多1000字。当前字数:0
*
联系方式: