6
โครงสร้างข้อมูลสำหรับชุดของต้นไม้
พยายามอนุญาตการจัดเก็บรายการองค์ประกอบอย่างมีประสิทธิภาพ คำนำหน้าจะใช้ร่วมกันดังนั้นจึงเป็นพื้นที่ที่มีประสิทธิภาพ ฉันกำลังมองหาวิธีที่คล้ายกันในการจัดเก็บต้นไม้อย่างมีประสิทธิภาพ ฉันต้องการที่จะตรวจสอบการเป็นสมาชิกและเพิ่มองค์ประกอบโดยรู้ว่าต้นไม้ที่กำหนดเป็นต้นไม้ย่อยของต้นไม้ที่เก็บไว้หรือถ้ามีต้นไม้ที่เก็บไว้เป็นต้นไม้ย่อยของต้นไม้ที่กำหนดก็เป็นที่ต้องการเช่นกัน ฉันมักจะเก็บต้นไม้ไบนารีที่มีความสูงไม่สมดุลประมาณ 500 ต้นน้อยกว่า 50 แก้ไข แอปพลิเคชันของฉันเป็นตัวตรวจสอบรุ่นบางประเภทโดยใช้การบันทึกความจำบางประเภท ลองนึกภาพผมมีรัฐและสูตรต่อไปนี้: F = φและกรัม= ( φ ∨ ψ )กับφเป็น subformula ซับซ้อนและจินตนาการแรกที่ผมต้องการทราบว่าฉถืออยู่ในs ฉันจะตรวจสอบว่าϕถือครองและหลังจากกระบวนการที่มีความยาวฉันได้รับมันเป็นกรณี ทีนี้ฉันอยากรู้ว่าgมีsหรือไม่ ฉันต้องการจดจำความจริงที่ว่าfเก็บไว้และสังเกตว่าg ⇒ fsssf=ϕf=ϕf = \phig=(ϕ∨ψ)g=(ϕ∨ψ)g = (\phi \vee \psi)ϕϕ\phifffsssϕϕ\phigggsssfffg⇒fg⇒fg \Rightarrow fเพื่อที่ฉันจะได้ค่าในsเกือบจะในทันที ในทางกลับกันถ้าฉันได้พิสูจน์แล้วว่าgไม่ถือในtฉันก็อยากจะบอกว่าfไม่ถือในtเกือบจะทันทีgggsssgggtttfffttt เราสามารถสร้างคำสั่งซื้อบางส่วนเกี่ยวกับสูตรและมี IFF กรัม⇒ฉ แต่ละรัฐsเราเก็บสองชุดของสูตร; L ( s ) จัดเก็บสูตรสูงสุดที่เก็บไว้และl ( s ) จะจัดเก็บสูตรขั้นต่ำที่ไม่ได้เก็บไว้ ตอนนี้ได้รับการรัฐsและสูตรกรัมผมสามารถดูได้ว่า∃ ฉ∈ …