• <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>

            PIGWORLD

            學無止境

            已修改完畢,謝謝哈
            re: 第一章 UNIX系統概覽 PIGWORLD 2006-01-04 00:48
            好的,其實我unix很菜的,正在學習中,以后多幫助啊~~
            給你寫了個后序遍歷的非遞歸實現,直接寫的,沒有驗證過,估計沒有什么大的問題,看看吧
            思想是:
            先找到最左邊的葉子并把路上遇到的節點依次壓棧,然后彈出棧頂的元素(該元素為最左邊的葉子),并判斷(1)它有沒有右節點;(2)右節點是否被訪問過。如果(1)為有右節點同時(2)為沒有訪問過,則先壓入剛才彈出的元素,然后再壓入它的右子樹。否則,就訪問該節點,并設置pre為改節點。

            void BT_PostOrderNoRec(pTreeT root)
            {
            stack<pTreeT> s;
            s.push(root);

            while(root != 0 || !s.isEmpty()) {
            //找到最左邊的葉子
            while((root = root->left) != 0) {
            s.push(root);
            }

            pTree pre; //記錄前一個訪問的節點
            root = s.pop(); //彈出棧頂元素

            //如果右子樹非空,并且右子樹未訪問過,
            //則(在內層while循環中)把右子樹壓棧
            if(root->right != 0 && pre != root->right) {
            //要把上一句中彈出的元素重新壓棧
            s.push(root);
            root = root->right;
            s.push(root);
            }

            //否則
            else {
            彈出棧頂節點,訪問它并設置pre為該節點
            root = pre = s.pop();
            visit(root);
            //使root為0以免進入內層循環
            root = 0;
            }
            }
            久久国产免费直播| 久久久免费精品re6| 香蕉99久久国产综合精品宅男自 | 亚洲va国产va天堂va久久| 久久婷婷五月综合97色| 丁香久久婷婷国产午夜视频| 久久国产美女免费观看精品| 亚洲欧美伊人久久综合一区二区 | 漂亮人妻被黑人久久精品| 97精品国产91久久久久久| 国内精品伊人久久久久影院对白| 欧美日韩久久中文字幕| 精品久久一区二区三区| 久久人人爽人人爽人人片av麻烦| a级成人毛片久久| 久久综合视频网| 99久久精品免费看国产| 欧美精品久久久久久久自慰| 精品久久久久久无码人妻蜜桃| 日韩久久久久久中文人妻 | 2019久久久高清456| 久久精品国产91久久综合麻豆自制| 久久综合给合综合久久| 94久久国产乱子伦精品免费| 久久精品中文闷骚内射| 久久婷婷是五月综合色狠狠| 精品久久久久久久久久久久久久久 | 亚洲精品美女久久久久99小说 | 国内精品伊人久久久久妇| 久久国产成人亚洲精品影院| 成人国内精品久久久久影院| 久久中文骚妇内射| 无码人妻久久一区二区三区免费| 亚洲国产精品嫩草影院久久| AA级片免费看视频久久| 色综合久久久久| 久久91精品国产91久久户| 国产精品久久久久影视不卡| 国产精品久久久久久影院| 99久久99久久精品免费看蜜桃| 欧美一区二区三区久久综合|