• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            逛奔的蝸牛

            我不聰明,但我會很努力

               ::  :: 新隨筆 ::  ::  :: 管理 ::
            #include <iostream>
            #include 
            <cstdlib>
            #include 
            <stack>

            /**
             * Application entry
             
            */
            int main(int argc, char *argv[]) {
                    std::string str 
            = "a[]b[c[f[]]d[]]";
                    std::string result; 
            // 保存結(jié)果
                    std::stack<char> stack;

                    stack.push(
            '$'); // 開始的標(biāo)志,可用可不用
                    size_t index = 0;
                    size_t length 
            = str.size();
                    
            for (index = 0; index < length; ++index) {
                            
            // 如果不是],則壓入棧中
                            if (str.at(index) != ']') {
                                    stack.push(str.at(index));

                                    
            if ('[' == str.at(index)) {
                                            result 
            += "['TREE', ["// 樹結(jié)構(gòu)的前半部分
                                    }
                            } 
            else { // 是],說明一個樹或者一個子樹已經(jīng)結(jié)束,那么構(gòu)造完這棵樹
                                    if ('$' == stack.top()) {
                                            
            break;
                                    }

                                    
            // 處理[時的構(gòu)造結(jié)構(gòu)
                                    if ('[' == stack.top()) {
                                            result 
            += "], ";
                                            stack.pop();
                                    }

                                    
            // 片面是處理樹的名字,在這里用了最簡單的處理,只處理了一個字母的
                                    
            // 其實名字應(yīng)該是可以有多個字母,這時,用一個循環(huán)來解決,而且要注意
                                    
            // 的是壓入棧的,所以讀出來的時候名字是反的,所以再反過來就好了.
                                    result.append(1, stack.top());
                                    result 
            += "]";
                                    stack.pop();
                            }
                    }

                    std::cout 
            << result << std::endl;

                    
            return EXIT_SUCCESS;
            }

            輸出結(jié)果:
            ['TREE', [], a]['TREE', [['TREE', [['TREE', [], f]], c]['TREE', [], d]], b]
            posted on 2008-03-14 18:24 逛奔的蝸牛 閱讀(282) 評論(0)  編輯 收藏 引用 所屬分類: C/C++
            久久精品国产2020| yy6080久久| 亚洲欧美日韩精品久久亚洲区| 久久青青草原精品国产软件| 内射无码专区久久亚洲| 97精品依人久久久大香线蕉97 | 国产AV影片久久久久久| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 久久久99精品一区二区| 久久精品免费一区二区| 91精品国产91久久久久久| 久久精品国产色蜜蜜麻豆| 国产99久久久国产精品~~牛| 亚洲av成人无码久久精品| 久久人人爽人人澡人人高潮AV| 国产精品美女久久久久网| 一本久道久久综合狠狠爱| 亚洲欧美成人久久综合中文网 | 精品久久久久久国产潘金莲| 久久免费99精品国产自在现线 | 97精品伊人久久大香线蕉| 欧美精品一本久久男人的天堂| 久久www免费人成看片| 国产精品99久久久精品无码 | 欧美精品一本久久男人的天堂| 色欲av伊人久久大香线蕉影院| 久久丫忘忧草产品| 欧美日韩精品久久久久| 日本加勒比久久精品| 久久精品国产只有精品66| 国产L精品国产亚洲区久久 | 国产A级毛片久久久精品毛片| 精品一区二区久久久久久久网站| 狠狠色丁香久久婷婷综合五月| 久久久久久国产精品免费无码 | 久久久久人妻一区精品果冻| 99久久精品免费看国产一区二区三区 | 久久亚洲国产成人精品无码区| 久久精品国产只有精品66| 国产精品久久久久久五月尺| 久久妇女高潮几次MBA|