精品日本亚洲一区二区三区,99久久精品免费观看国产,99久久免费精品,亚洲精品国产一区二区成人,日本亚洲精品一区二区三区四区,国产亚洲精品成人久久网站,久久亚洲男人第一AV网站,精品国产高清一区二区广区,久久精品五月天很黄很艳女TV

考研論壇

標題: 王道數據結構二叉樹算法題 求指導 [打印本頁]

作者: kg810    時間: 2012-9-2 22:24
標題: 王道數據結構二叉樹算法題 求指導
本帖最后由 kg810 于 2012-9-2 22:26 編輯

王道數據結構 116 頁第 11 題 “已知二叉樹以二叉鏈表存儲,編寫算法完成:對于樹中每一個元素值為x的節點,刪去以他為根的子樹,并釋放相應的空間”

答案給的算法用的后序非遞歸遍歷。
我覺得先序遞歸方法更好啊,遇到值為x的節點,他的子樹就不需要考慮,全部刪掉。
算法如下:
int tag;           //為1時表示遇到值為x的節點
void search(BitTree T,ElemType x){
    BitTree P = T;   
    BitTree Q = NULL; //用于釋放節點
    while(P){
        if(P->data == x) tag = 1;
        search(P->ltree);
        search(P->rtree);
        if(tag == 1){
                Q = P->lchild; free(Q);
                Q = P->rchild; free(Q);
        }//if
    }//while
}
求指導!

作者: 1018ji    時間: 2012-9-2 23:12
額 你想的也太簡單了吧 所謂刪除不是釋放X節點那么簡單
還要釋放他包含的一堆節點

后序遍歷好處是先左后右最后根節點刪除時候最后刪除X節點又能釋放他所包含節點

先序并不是說不可以但是要換換寫法

關鍵是理解刪除要求《刪去以他為根的子樹,并釋放相應的空間》題目要求

好了 好好學習,進度有點慢。
作者: kg810    時間: 2012-9-2 23:23
1018ji 發表于 2012-9-2 23:12
額 你想的也太簡單了吧 所謂刪除不是釋放X節點那么簡單
還要釋放他包含的一堆節點

先謝啦!
但是遞歸上來的話,該節點的子樹中的每個節點都會被free掉啊,為什么不行啊。
我進度確實慢,剛開始兩個禮拜。今年二戰,去年考的通信專業,今年因為工作原因還是考計算機。也是因為工作原因沒有太多的額時間復習。

作者: 1018ji    時間: 2012-9-2 23:45
kg810 發表于 2012-9-2 23:23
先謝啦!
但是遞歸上來的話,該節點的子樹中的每個節點都會被free掉啊,為什么不行啊。
我進度確實慢,剛 ...

額 我也感覺這個tag有問題

這貨是個全局變量是會出現問題的

這個題代碼這么短?


作者: kg810    時間: 2012-9-3 07:48
1018ji 發表于 2012-9-2 23:45
額 我也感覺這個tag有問題

這貨是個全局變量是會出現問題的

謝啦  tag可以在函數返回時重新賦0吧  還是覺得是對的。。。。。。
作者: 1018ji    時間: 2012-9-3 22:12
kg810 發表于 2012-9-3 07:48
謝啦  tag可以在函數返回時重新賦0吧  還是覺得是對的。。。。。。

額 這個遞歸還真好好說 看是沒用的 最好調試一下,呵呵

作者: kg810    時間: 2012-9-4 07:46
1018ji 發表于 2012-9-3 22:12
額 這個遞歸還真好好說 看是沒用的 最好調試一下,呵呵

嗯謝謝你 *
作者: 1018ji    時間: 2012-9-4 09:35
kg810 發表于 2012-9-4 07:46
嗯謝謝你 *

QQ還真不用 主要是考研就把QQ廢了

有興趣郵件聯系 *





歡迎光臨 考研論壇 (http://www.5522pp.com/) Powered by Discuz! X3.2