平衡的树状数据结构,可调整为大小

时间:2011-01-09 12:34:26

标签: .net algorithm dictionary hash tree

与此相关:stack overflow question

在那里我发现.Net字典调整到下一个至少是当前大小两倍的素数大小,我想知道是否有任何平衡的树状数据结构可以调整到素数大小(类似于B-树木或二叉树也许。)

.Net词典背后的树状数据结构是什么?

感谢。

2 个答案:

答案 0 :(得分:2)

字典使用hash table算法,该算法将数据存储在一个数组中,该数组的大小/大小根据素数进行调整。

.NET SortedDictionary使用Red-Black tree结构来维护键/值对。由于红黑树不是存储在固定数组中,而是存储在具有左/右子节点的节点上,所以实际上没有确定任何大小的概念,因为节点被添加到树中,树被旋转到保持平衡。

答案 1 :(得分:2)

.Net的字典被实现为hastables,它根本不是树状数据结构。问题you link to解释了为什么哈希表更好地调整为素数。

至于树状结构,我无法想象调整大小的目的。这没有多大意义。但是,有意义的是将平衡树结构的大小调整为完整的树,对于二叉树来说,它将是2 n -1。