我正在使用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