我想提供一个能够在每个页面中存储节点的磁盘树结构。假设我们的页面在每个页面中有四个节点,并且对其他页面有四个引用。
例如: 页面 0:级别 0:4 个节点(0、1、2、3)/4 个指针(偏移量 0:page1,1:page2,2:page3,3:page4), 第 1 页:级别 1:4 个节点(4、5、6、7)/4 个指针(偏移量 0:page6,1:null,2:null,3:null), 第 2 页:级别 1:4 个节点(8、9、10、11)/4 个指针(偏移量 0:null,1:null,2:null,3:null), 第 3 页:级别 1:4 个节点(12、13、14、15)/4 个指针(偏移量 0:null,1:null,2:null,3:null), 第 4 页:级别 1:4 个节点(16、17、18、19)/4 个指针(偏移量 0:null,1:null,2:null,3:null), 第 5 页:级别 2:4 个节点(20、21、22、23)/4 个指针(偏移量 0:null,1:null,2:null,3:null),
我目前不知道如何获取每个级别的偏移量以找到页面。即 node-ID >> 2 应该提供页面 ID,但是如何获取树中每一层的右指针的偏移量?
例如这个非常简单的树中的第 6 页。搜索第 6 页首先应该得到偏移量 0,即从第 1 页(根页)开始的第 2 页。所以我得到了第 2 页,然后又是偏移量 0。
请注意,页面应按 Levelorder 排序。我不确定这种方法是否可行。