我正在使用C#實現B +樹。現在據我所知,一個樹節點應該保存一些(order-1)鍵,並且指向記錄或其他節點的指針數量,也就是說,只有葉節點會保存實際指向記錄的指針,並且內部節點將保存指向其他節點的指針。C#通用B +樹
我正在與該實現遇到的問題是與C#泛型
節點類被聲明爲:
class Node< K,V >
{
K [] keys ;
V [] values;
}
現在,當我嘗試將節點放入值數組作爲這樣
_root.Values[0] = left ; // left being of type Node<K,V>
我收到以下錯誤:
Cannot implicitly convert type 'BTree_Library.Node' to 'V'
所以,我試圖找到一種方法來解決這個問題,另一種選擇是更改實現來保存一個節點的數組和一個記錄。
所以,結論是:
在C我會用:
(void* values;)
我正在尋找的,在C#中的等價。雖然我們在這個問題上,我是否正確理解B +樹結構 參考節點和記錄是否可以互換節點指針?
使用列表而不是陣列 - 你將無法將項目添加到陣列。 –
@Martin,這就是B樹的要點,每個節點都有一個不斷計數的鍵和值,但其中一些可以是空的。 – svick