[問題] 用array實作二元搜尋樹

看板C_and_CPP (C/C++)作者 (自我催眠)時間14年前 (2011/11/13 03:48), 編輯推噓4(406)
留言10則, 4人參與, 最新討論串1/1
小弟日前在研究BST的結構 學會了用linklist去實作 但是 假使今天我想要用陣列去存一個BST 如果是插入的話比較簡單 假設ROOT是K 那右子樹就是2k+1 左子樹就是2k 寫個while迴圈讓他去跑就可以了 不過在寫到刪除的時候 發現有一個問題 就是除了刪除葉節點可以直接移除之外 刪除含有子樹的點時 會需要移動後面所有的節點 關於這部分要怎麼實作 各位前輩有什麼看法嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.33.236.246

11/13 08:52, , 1F
你確定BST用array實現時, 那邊的處理是用移動?
11/13 08:52, 1F

11/13 09:00, , 2F
之後延伸的想法, 可以分為稀疏BST跟完全BST.
11/13 09:00, 2F

11/13 13:16, , 3F
不懂e大的意思
11/13 13:16, 3F

11/13 13:54, , 4F

11/13 13:55, , 5F
看懂這個之後 你可以再去看紅黑樹的概念 然後自己實作:)
11/13 13:55, 5F

11/13 13:57, , 6F
用甚麼資料結構實作不重要 只是改操作方法內容 介面不變
11/13 13:57, 6F

11/13 17:51, , 7F
追求速度效率的話, 對於特殊問題型態 選對 資料結構, 會
11/13 17:51, 7F

11/13 17:51, , 8F
有更好的效率.
11/13 17:51, 8F

11/13 17:53, , 9F
Yshuan說的不重要, 應該是偏好於一般化的寫程式方式.
11/13 17:53, 9F

11/13 17:54, , 10F
讓我想到之前用stack來實作array的系列文
11/13 17:54, 10F
文章代碼(AID): #1Elirr0j (C_and_CPP)
文章代碼(AID): #1Elirr0j (C_and_CPP)