中缀转后缀的数组实现(只有加减乘除

#include <stdio.h>
int youxian(char a)
{
	if(a=='+'||a=='-')
	return 1;
	if(a=='*'||a=='%')
	return 2;
}
int main(void)
        {
        	char stack[20];
        	int jishu=0;
        	char b;
        	
        	while((b=getchar())!='\n')
			    {
        		  if(b>=33&&b<=47)
        		    {   
        		    	if(jishu==0)
        		    	   {
        		    	   	stack[jishu]=b;
        		    	   	jishu++;
						   }
						else
						   {
						   	if(youxian(stack[jishu-1])>=youxian(b))
						   	   {
								  printf("%c",stack[jishu-1]);
								  stack[jishu-1]=b;}
						    else stack[jishu++]=b;
						   	      
						   }
						
						
					}
					else printf("%c",b);
			    }
			    while(jishu>0)
			     {
			     	printf("%c",stack[jishu-1]);
			     	jishu--;
				 }
		 } 

 

posted @ 2016-04-10 12:35  xhyxhy  阅读(164)  评论(0编辑  收藏  举报