6
ツリーのセットのデータ構造。
トライにより、要素のリストを効率的に保存できます。接頭辞は共有されるため、スペース効率が高くなります。 木を効率的に保管するための同様の方法を探しています。特定のツリーがいくつかの格納されたツリーのサブツリーであるかどうか、または特定のツリーのサブツリーである格納されたツリーが存在するかどうかを知って、メンバーシップをチェックして要素を追加できるようにしたいと思います。 私は通常、高さが50未満の約500の不平衡バイナリツリーを格納します。 編集 私のアプリケーションは、ある種のメモを使用したある種のモデルチェッカーです。私が持っている状態を想像と以下の式:F = φとG = (φ ∨ ψ )とφは、複雑な部分式であることを、私が最初かどうかを知りたいと想像fが成り立つ秒。私はϕが成立するかどうかを確認し、長いプロセスの後、それが事実であることを確認します。ここで、gがsに成立するかどうかを知りたい。私は事実を覚えたいfが保持していることに注意してくださいにグラム⇒ Fsssf=ϕf=ϕf = \phig=(ϕ∨ψ)g=(ϕ∨ψ)g = (\phi \vee \psi)ϕϕ\phifffsssϕϕ\phigggsssfffg⇒fg⇒fg \Rightarrow f私は導き出すことができ中のほぼ瞬時に。 逆に、gがtに保持されないことを証明した場合、fはtにほぼ瞬時に保持されないことを伝えたいと思います。gggsssgggtttfffttt 私たちは式に部分的秩序を構築し、持つことができます IFF グラム⇒ F。状態sごとに、2組の式を保存します。L (s )は保持する最大の数式を格納し、l (s )は保持しない最小の数式を格納します。今状態所与Sおよび式Gの場合、私が見ることができる∃ F ∈ L (S )、F ⇒ G、又は場合∃ F ∈ L (S )g≥fg≥fg \geq fg⇒fg⇒fg \Rightarrow fsssL(s)L(s)L(s)l(s)l(s)l(s)sssggg∃f∈L(s),f⇒g∃f∈L(s),f⇒g\exists f \in L(s), f …