[問題]二元樹刪除左右皆有子樹的節點
開發平台(Platform): (Ex: Win10, Linux, ...)
Win 10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
VC2017
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
BST中刪除的部分
在remove部分中的removeNode函式不太懂
291行上面是處理當刪除的是葉節點和目標若
是其中一個無子樹的情況
我搞不懂是291行要處理刪除目標皆有子樹的
情況,tempPtr的指標是由呼叫
removeLeftmostNode得來,我看得懂他是要
找大於刪除目標但是是最小的節點,可是他之
後回傳是return removeNode(nodePtr),這樣
子temp的指標是怎麼得到呢?因為如果跳到
removeNode的話不就變的要刪掉葉節點,後
來回傳就是空指標了temp接下來的程式碼不就錯了嗎?
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
http://codepad.org/paIfmLtw
補充說明(Supplement):
因為只有這邊搞不懂所以主程式和其他的標頭
檔就沒有附了,我查了刪除是把取代的節點資
料替換,然後刪掉最後的葉節點,可是這支程
式碼替換的地方看的不是很懂...卡了很久,拜
託各位救我,感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.169.134
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1513247534.A.7B3.html
※ 編輯: sdfg014025xx (180.217.169.134), 12/14/2017 18:32:39
※ 編輯: sdfg014025xx (180.217.169.134), 12/14/2017 18:33:50
→
12/14 19:20,
8年前
, 1F
12/14 19:20, 1F
→
12/14 19:20,
8年前
, 2F
12/14 19:20, 2F
→
12/14 19:20,
8年前
, 3F
12/14 19:20, 3F
※ 編輯: sdfg014025xx (180.217.169.134), 12/14/2017 19:26:31
→
12/14 19:28,
8年前
, 4F
12/14 19:28, 4F
→
12/14 20:24,
8年前
, 5F
12/14 20:24, 5F
→
12/14 20:39,
8年前
, 6F
12/14 20:39, 6F
→
12/14 21:53,
8年前
, 7F
12/14 21:53, 7F
→
12/14 22:08,
8年前
, 8F
12/14 22:08, 8F
→
12/14 22:08,
8年前
, 9F
12/14 22:08, 9F
→
12/14 22:14,
8年前
, 10F
12/14 22:14, 10F
→
12/14 22:15,
8年前
, 11F
12/14 22:15, 11F
→
12/14 22:15,
8年前
, 12F
12/14 22:15, 12F
→
12/14 22:16,
8年前
, 13F
12/14 22:16, 13F
→
12/14 22:17,
8年前
, 14F
12/14 22:17, 14F
→
12/14 22:18,
8年前
, 15F
12/14 22:18, 15F
→
12/14 22:18,
8年前
, 16F
12/14 22:18, 16F
→
12/14 22:28,
8年前
, 17F
12/14 22:28, 17F

推
12/14 22:44,
8年前
, 18F
12/14 22:44, 18F
→
12/14 22:46,
8年前
, 19F
12/14 22:46, 19F
→
12/14 22:46,
8年前
, 20F
12/14 22:46, 20F
推
12/15 09:15,
8年前
, 21F
12/15 09:15, 21F
→
12/15 13:11,
8年前
, 22F
12/15 13:11, 22F
推
12/15 21:25,
8年前
, 23F
12/15 21:25, 23F
推
12/16 16:20,
8年前
, 24F
12/16 16:20, 24F