在树结构中构建和查找“页面”

时间:2012-09-22 17:03:57

标签: java scala

我想提供一个磁盘树结构,它能够在每个页面中存储节点。假设我们在每个页面中有四个节点的页面,并且有四个对其他页面的引用。

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排序。我不确定这种方法是否可行。

0 个答案:

没有答案