各ページにノードを格納できるオンディスクツリー構造を提供したいと思います。各ページに4つのノードがあり、他のページへの参照が4つあるページがあるとします。
たとえば、次のようになります。 ページ0:レベル0:4ノード(0、1、2、3)/ 4ポインター(オフセット0:ページ1、1:ページ2、2:ページ3、3:ページ4)、 ページ1:レベル1:4ノード(4、5、6、7)/ 4ポインター(オフセット0:ページ6、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)、
私は現在、ページを見つけるために各レベルでオフセットを取得する方法がわかりません。つまり、ノードID >> 2はページIDを提供する必要がありますが、ツリーの各レベルで右ポインターのオフセットを取得するにはどうすればよいですか?
たとえば、この非常に単純なツリーの6ページ目です。ページ6を検索すると、最初はオフセット0、つまりページ1(ルートページ)から始まるページ2が取得されます。だから私はページ2を取得しています、そしてそれはフォローするためにもう一度オフセット0です。
ページはLevelorderで並べ替える必要があることに注意してください。アプローチが可能かどうかはわかりません。