我正在構建一些數據的btree。一旦我構建btree(即插入所有元素),我不再插入或移除元素。然而,由此產生的b樹不是最優的,因爲如果我可以非常頻繁地得到每個節點的最大元素,那麼我的節點包含少於n個元素(問題變得更糟,大的n是)。這是從我的B樹的部分時,幾百個元素和ñ等於5的部分包含根節點和幾個最底層的節點 如何最大化每個btree節點的元素數量
正如你可以看到不少的節點較少比5個元素。我的問題是: 有沒有一種方法可以在構建完成後「壓縮」btree,以便所有元素(除了可能是最底部的一些節點)都包含n元素。將要存儲在節點中的密鑰將是32位值,但我不能保證它們將以任何特定順序插入。
我沒有時間閱讀這篇論文,但是你能否改變你構建btree的方式,使它在*施工過程中變得緊湊* http://www.sciencedirect.com/science/article/pii/0020019083900844 –
這表明你可以在線性時間從頭開始構建一個緊湊的btree(在頂部的摘要中):http://cpsc.yale.edu/網站/默認/文件/文件/ tr167.pdf –
那些文件談論插入按鍵「按順序」,我不能保證。我想我可以在第一個之後重建我的btree(因爲我會知道這個命令),但是這會佔用很多內存......如果沒有其他方法,我會這麼做...... – XapaJIaMnu