Re: [問題] 二元樹建立問題

看板C_and_CPP作者 (--???--)時間12年前 (2012/01/30 03:00), 編輯推噓2(2010)
留言12則, 3人參與, 最新討論串2/4 (看更多)
※ 引述《darkcookies (D-GRAY MAN)》之銘言: : 開發平台(Platform): GCC : 額外使用到的函數庫(Library Used): : 問題(Question):請問我有一個輸入是 : 5 1 1 4 1 0 8 1 1 11 1 1 13 0 0 4 0 1 7 0 0 2 0 0 1 0 0 : 樹長成 : 5 : / \ : 4 8 : / / \ : 11 13 4 : / \ \ : 7 2 1 T代表現在的二元樹,Q代表現在佇列的狀態 佇列的第一個元素代表下一個節點要接的位置(例如5L表示要接在5這個節點的左邊) 每次加入一個節點之後,就把它的子樹位置加到佇列的最後面 輸入:(每3個數字代表一個節點) 5 1 1 4 1 0 8 1 1 11 1 1 13 0 0 4 0 1 7 0 0 2 0 0 1 0 0 Step 1: 5 1 1 ,根節點. 加入5L,5R至佇列 T: 5 Q: 5L 5R -- Step 2: 4 1 0 ,加在5的左邊. 加入4L至佇列 T: 5 / 4 Q: 5R 4L -- Step 3: 8 1 1 ,加在5的右邊. 加入8L,8R至佇列 T: 5 / \ 4 8 Q: 4L 8L 8R -- Step 4: 11 1 1 ,加在4的左邊. 加入11L,11R至佇列 T: 5 / \ 4 8 / 11 Q: 8L 8R 11L 11R -- Step 5: 13 0 0 ,加在8的左邊 T: 5 / \ 4 8 / / 11 13 Q: 8R 11L 11R -- Step 6: 4 0 1 ,加在8的右邊. 加入4R至佇列 T: 5 / \ 4 8 / / \ 11 13 4 Q: 11L 11R 4R -- Step 7: 7 0 0 ,加在11的左邊 T: 5 / \ 4 8 / / \ 11 13 4 / 7 Q: 11R 4R -- Step 8: 2 0 0 ,加在11的右邊 T: 5 / \ 4 8 / / \ 11 13 4 / \ 7 2 Q: 4R -- Step 9: 1 0 0 ,加在4的右邊 T: 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1 Q: (NULL) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.134.15

01/31 01:30, , 1F
請問我要使用queue.push(某個節點的left指標),我要
01/31 01:30, 1F

01/31 01:31, , 2F
我要怎麼宣告queue<型態> 變數;
01/31 01:31, 2F

01/31 03:43, , 3F
queue.push(&某個節點的left指標)
01/31 03:43, 3F

01/31 03:45, , 4F
宣告queue的型態用雙重指標...
01/31 03:45, 4F

01/31 09:50, , 5F
要用指標也可以 只是作法有點不同
01/31 09:50, 5F

01/31 15:46, , 6F
我最後要算出全部路徑的和,大大覺得怎麼寫比較好?
01/31 15:46, 6F

01/31 16:40, , 7F
DFS?
01/31 16:40, 7F

01/31 18:18, , 8F
路徑和?從根出發的?
01/31 18:18, 8F

01/31 18:31, , 9F
從根出發到葉,以上面例子就是顯示四個和
01/31 18:31, 9F

01/31 19:54, , 10F
那樣就是dfs就ok摟
01/31 19:54, 10F

02/01 00:10, , 11F
dfs bfs都可以...
02/01 00:10, 11F

02/01 22:40, , 12F
謝謝F大以及D大提供的意見,對小弟有很大的幫助^^
02/01 22:40, 12F
文章代碼(AID): #1F9PSpaJ (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1F9PSpaJ (C_and_CPP)