開發平台(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):
因為只有這邊搞不懂所以主程式和其他的標頭
檔就沒有附了,我查了刪除是把取代的節點資
料替換,然後刪掉最後的葉節點,可是這支程
式碼替換的地方看的不是很懂...卡了很久,拜
託各位救我,感謝!