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