セットからの要素のリストのセットがあります。各要素は単一のリストに表示されます。次の更新を実行できるデータ構造を探しています。N = { 1 、2 、3 、。。。、n } N L
:を含むリストをを含むリストの最後に連結しますx
:含むリスト分割直後x
また、次のクエリを実行する必要もあります。
:とが同じリストにあり、が後に場合に返し(ただし、必ずしも隣接している必要はありません)x y y x x
:を含むリストの最初の要素を返し
:の後に戻り次の要素リストを含むでx
これらの更新をで実行し、クエリを時間で実行するデータ構造をすでに思いついています。私は主にこれを実行できるデータ構造が既にあるかどうかに興味があります(うまくいけばより速く?)。O (l g (n ))
動機:根ざした有向フォレストは、これらのリストセットの2つで表すことができ、そのようなフォレストでの到達可能性をすばやく計算できます。私はそれらが他に何のために使用できるのか、そしてこれらすべてがすでに知られているのかどうかを見たいです。