• <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;
            }
            }
            性做久久久久久久久久久| 伊人色综合久久天天人守人婷| 精品久久久久久无码人妻热| 久久人人爽人人爽AV片| 久久久久精品国产亚洲AV无码| 97久久久精品综合88久久| 国产精品久久久99| 亚洲国产另类久久久精品黑人| 青青青青久久精品国产h| 精品多毛少妇人妻AV免费久久| 精品久久亚洲中文无码| 久久国产精品成人影院| 午夜精品久久久久久久| 99精品伊人久久久大香线蕉| 亚洲国产精品无码成人片久久| 粉嫩小泬无遮挡久久久久久| 人妻精品久久久久中文字幕69| 日韩AV毛片精品久久久| 国产美女久久久| 久久精品国产免费| 国内精品伊人久久久久妇| 久久久久国产视频电影| 久久精品国产WWW456C0M| 亚洲精品无码久久一线| 久久久久人妻一区精品果冻| 国产精品视频久久久| 久久精品国产亚洲AV无码麻豆| 久久只有这里有精品4| 性欧美大战久久久久久久| 999久久久免费国产精品播放| 久久99国产综合精品女同| 老男人久久青草av高清| 亚洲а∨天堂久久精品9966| 久久久噜噜噜久久| 久久久精品视频免费观看| 久久精品国产99久久久香蕉| 久久久无码精品亚洲日韩软件| 久久av高潮av无码av喷吹| 精品久久人人爽天天玩人人妻| 国产精品亚洲综合专区片高清久久久 | 国产aⅴ激情无码久久|