ฉันกำลังทำโปรเจ็กต์ที่ฉันต้องการโครงสร้างข้อมูล btree หรือ b+tree ไม่มีใครรู้เกี่ยวกับการใช้งาน btree หรือ b+tree ที่มีอยู่ (ด้วยการแทรก, ลบ, อัลกอริธึมการค้นหา) ควรยอมรับสตริงเป็นอินพุตและสร้างรูปแบบ btree หรือ b+tree ของสตริงเหล่านี้
การใช้งาน Btree หรือ B+tree ที่มีอยู่ใน Java [ปิด]
คำตอบ (4)
เนื่องจากขาดรายละเอียดเกี่ยวกับปัญหาที่คุณต้องแก้ไข ฉันจะให้ตัวเองแนะนำวิธีแก้ปัญหาอื่นที่อาจแก้ปัญหาของคุณได้: ใช้ต้นไม้สีแดง/ดำแทน
ต้นไม้สีแดง/ดำถือได้ว่าเป็นต้นไม้ b ตามที่อธิบายไว้ใน Wikipedia:
ต้นไม้สีแดงดำมีโครงสร้างคล้ายคลึงกับต้นไม้ B ในลำดับที่ 4 โดยแต่ละโหนดสามารถมีค่าได้ระหว่าง 1 ถึง 3 ค่า และ (ตามลำดับ) ระหว่างพอยน์เตอร์ลูก 2 ถึง 4 ตัว ใน B-tree ดังกล่าว แต่ละโหนดจะมีเพียงค่าเดียวที่ตรงกับค่าในโหนดสีดำของต้นไม้สีแดง-ดำ โดยมีค่าเผื่อเลือกก่อนและ/หรือหลังในโหนดเดียวกัน โดยทั้งสองค่าจะตรงกับโหนดสีแดงที่เทียบเท่ากันของ ต้นแดงดำ [...]
Java มีคลาสในตัวสองคลาส TreeMap และ TreeSet โดยให้ต้นไม้สีแดง/ดำ สิ่งเหล่านี้จะไม่รับสตริงเป็นอินพุตและขยายแผนผังจากนั้น แต่คุณอาจสามารถใช้บางสิ่งที่คล้ายกัน "รอบ" หนึ่งในคลาสเหล่านั้นได้
jdbm มีการใช้งาน b+tree ที่มั่นคงมาก h+tree ซึ่งเป็นโครงสร้างข้อมูลที่เกี่ยวข้องที่น่าสนใจ
ฉันต้องใช้ โค้ด