<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 147  文章 - 71  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(1)

    隨筆分類(146)

    隨筆檔案(147)

    文章分類(28)

    文章檔案(28)

    喜歡的Blog

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    http://www.spoj.pl/problems/ONP/
    中綴表達(dá)式轉(zhuǎn)換為后綴表達(dá)式算法
    使用一個(gè)數(shù)組作為運(yùn)算符的棧,從頭到尾掃描中綴表達(dá)式,對(duì)不同類型的字符按不同情況處理:
    1、如果是數(shù)字則直接放入后綴表達(dá)式數(shù)組;
    2、如果是左括號(hào)則直接入棧;
    3、如果是右括號(hào),則把從棧頂直到對(duì)應(yīng)左括號(hào)之間的運(yùn)算符依次退棧,并清除對(duì)應(yīng)的左括號(hào);
    4、對(duì)于運(yùn)算符,如果該運(yùn)算符的優(yōu)先級(jí)大于棧頂優(yōu)先級(jí),則直接入棧,
    若該運(yùn)算符的優(yōu)先級(jí)小于等于棧頂優(yōu)先級(jí),則先把棧頂運(yùn)算符出棧,寫(xiě)入后綴表達(dá)式數(shù)組,
    然后再入棧;
    5、掃描完成后,取出棧中所有運(yùn)算符,寫(xiě)入后綴表達(dá)式數(shù)組。
    import java.util.*;
    import java.io.*;

    public class SPOJ_4{
        
        
    public static char[] opt = {'(','+','-','*','/','^',')'};
        
        
    public static boolean compare(char c1,char c2){
            
    int i,j;
            
    for(i=0;i<7;i++){
                
    if(c1==opt[i])
                    
    break;
            }

            
    for(j=0;j<7;j++){
                
    if(c2==opt[j])
                    
    break;
            }

            
    if(i>j)
                
    return true;
            
    else
                
    return false;
        }

        
        
    public static void main(String rgs[]) throws Exception
        
    {
            BufferedReader stdin 
    = 
                
    new BufferedReader(
                    
    new InputStreamReader(System.in));        
            String line 
    = stdin.readLine();  
            
    int i,j,n,t = Integer.parseInt(line);
            
    for(i=0;i<t;i++){
                line 
    = stdin.readLine();
                
    char[] stack = new char[400];
                
    char c;
                
    int top=0;
                n
    =line.length();
                
    for(j=0;j<n;j++){
                    c
    =line.charAt(j);
                    
    if(c>='a' && c<='z')
                        System.out.print(c);
                    
    else if(c=='(')
                        stack[
    ++top]=c;
                    
    else if(c==')'){
                        
    while(stack[top]!='('){
                            System.out.print(stack[top]);
                            top
    --;
                        }

                        top
    --;
                    }

                    
    else{
                        
    if(top==0 || compare(c,stack[top]))
                            stack[
    ++top]=c;
                        
    else{
                            
    while(!(top==0 || compare(c,stack[top]))){
                                System.out.print(stack[top]);
                                top
    --;
                            }

                            stack[top
    ++]=c;
                        }
        
                    }

                }
         
                System.out.println(
    "");
            }

        }

    }
    posted on 2009-08-22 16:08 飛翔天使 閱讀(246) 評(píng)論(0)  編輯  收藏 所屬分類: spoj
    主站蜘蛛池模板: 亚洲国产精品久久久天堂| 内射干少妇亚洲69XXX| 亚洲精品福利网站| 亚洲AV电影天堂男人的天堂| baoyu777永久免费视频| 成人免费无毒在线观看网站| 亚洲中文字幕久久精品无码APP| 国产h视频在线观看免费| 国产女高清在线看免费观看| 亚洲福利在线观看| 亚洲av日韩综合一区二区三区| 亚洲爆乳无码专区www| 中国国产高清免费av片| 成人免费午夜无码视频| 亚洲热线99精品视频| 亚洲性色AV日韩在线观看| 亚洲国产精品一区二区第四页| 国产精品免费播放| 一区二区三区亚洲| 日韩大片在线永久免费观看网站| 黄页网址在线免费观看| 久久99九九国产免费看小说| 亚洲精品无码mv在线观看网站| 亚洲av无码成h人动漫无遮挡 | 久久精品国产精品亚洲色婷婷 | 亚洲色成人网站WWW永久| 在线aⅴ亚洲中文字幕| 成人网站免费看黄A站视频| 国产区卡一卡二卡三乱码免费| 亚洲色偷偷狠狠综合网| 国产成人亚洲综合一区| 99re免费99re在线视频手机版| 国内免费高清在线观看| 久久精品a亚洲国产v高清不卡 | 免费观看的毛片手机视频| 亚洲午夜视频在线观看| 一个人免费观看视频在线中文| 午夜视频免费在线观看| 亚洲精品和日本精品| 亚洲va中文字幕| av无码久久久久不卡免费网站|