2014-01-24 78 views
0

我正在實現一個依賴於B樹的數據結構。我需要一種方法去除樹的一部分。如何刪除B樹的子樹

具體來說,假設存儲在樹中的條目從0到n-1編號。給定0 < = i < = j < = n-1,removeSubtree(i,j)應當留下包含條目0,...,i-1,j + 1,... n-1的有效B樹。

基本情況是當第i個和第j個條目都在同一葉節點中時,這很容易。假設L_i是包含第i個條目的葉節點,L_j是包含第j個條目的葉節點,並且lca(L_i,L_j)是L_i和L_j的最低共同祖先的內部節點。如何繼續?

任何幫助,將不勝感激。

回答

0

你沒有說明你的具體困難是什麼,但它只是正常刪除過程的特例。刪除關鍵字,如果該關鍵字離開節點太空,則從相鄰節點中旋轉元素,如有必要合併它們,並根據需要調整父節點。