( ถามไซต์หลักแล้ว แต่ขอให้คุ้มครองเพิ่มเติมที่นี่ด้วย)
เนื่องจากฉันรู้เกี่ยวกับโครงสร้างข้อมูลสั้น ๆฉันต้องการภาพรวมที่ดีของการพัฒนาล่าสุดในพื้นที่นั้น
ฉัน googled และอ่านบทความจำนวนมากที่ฉันสามารถเห็นได้จากผลลัพธ์ของ google ตามคำขอจากหัวของฉัน ฉันยังคงสงสัยว่าฉันพลาดสิ่งสำคัญที่นี่
นี่คือหัวข้อที่น่าสนใจเป็นพิเศษสำหรับฉัน:
การเข้ารหัสแบบสั้น ๆ ของต้นไม้ไบนารีด้วยการดำเนินการที่มีประสิทธิภาพในการรับพาเรนต์ลูกซ้าย / ขวาจำนวนองค์ประกอบในทรีย่อย
คำถามหลักที่นี่มีดังต่อไปนี้: วิธีการทั้งหมดที่ฉันรู้ว่าถือว่าโหนดของต้นไม้นับตามลำดับลมหายใจแรก (เช่นในงานบุกเบิกในพื้นที่นี้ Jacobson, G. J (1988) โครงสร้างข้อมูลแบบคงที่แบบรวบรัด) ซึ่งไม่ได้ ดูเหมือนจะเหมาะสมสำหรับงานของฉัน ฉันจัดการกับต้นไม้ไบนารีขนาดใหญ่ที่ได้รับในเค้าโครงความลึกแรกและดัชนีโหนดความลึกแรกเป็นกุญแจสู่คุณสมบัติของโหนดอื่นดังนั้นการเปลี่ยนเค้าโครงต้นไม้มีค่าใช้จ่ายสำหรับฉันซึ่งฉันต้องการจะลดให้น้อยที่สุด ดังนั้นความสนใจในการอ้างอิงถึงงานพิจารณาอื่น ๆ แล้วเค้าโครงต้นไม้ BF
อาร์เรย์รายการที่มีความยาวผันแปรขนาดใหญ่ในหน่วยความจำภายนอก อาร์เรย์ไม่เปลี่ยนรูป: ฉันไม่จำเป็นต้องเพิ่ม / ลบ / แก้ไขรายการ ความต้องการเพียงอย่างเดียวคือเวลาเข้าถึงองค์ประกอบ O (1) และค่าใช้จ่ายต่ำที่สุดเท่าที่จะเป็นไปได้วิธีออฟเซ็ตและขนาดที่ตรงไปตรงมาดีกว่า นี่คือสถิติบางอย่างที่ฉันรวบรวมเกี่ยวกับข้อมูลทั่วไปสำหรับงานของฉัน:
จำนวนของไอเท็มทั่วไป - หลายร้อยล้านขึ้นไปเป็นหมื่น milliards
ประมาณ 30% ของรายการที่มีความยาวไม่มากขึ้นแล้ว 1 บิต ;
รายการ 40% -60% มีความยาวน้อยกว่า 8 บิต
เพียงไม่กี่เปอร์เซ็นต์ของรายการที่มีความยาวระหว่าง 32 และ 255 บิต (255 บิตเป็นขีด จำกัด )
ความยาวรายการเฉลี่ย ~ 4 บิต +/- 1 บิต
การกระจายความยาวของรายการอื่น ๆ เป็นไปได้ในทางทฤษฎี แต่ทุกกรณีที่น่าสนใจในทางปฏิบัติมีสถิติใกล้เคียงกับที่อธิบายไว้ข้างต้น
ลิงก์ไปยังบทความที่มีความซับซ้อนบทเรียนของความคลุมเครือห้องสมุด C / C ++ ที่มีเอกสารมากหรือน้อย - อะไรก็ตามที่มีประโยชน์สำหรับคุณในงานที่คล้ายกันหรือสิ่งที่ดูเหมือนว่าโดยการศึกษาของคุณ
ปรับปรุง : ฉันลืมที่จะเพิ่มคำถามที่ 1: ต้นไม้ไบนารีฉันจัดการกับไม่เปลี่ยนรูป ฉันไม่มีข้อกำหนดสำหรับการเปลี่ยนแปลงสิ่งที่ฉันต้องมีก็เพียงแค่ข้ามไปในหลาย ๆ ทางที่ย้ายจากโหนดไปยังลูกหรือไปสู่ผู้ปกครองเพื่อให้ต้นทุนเฉลี่ยของการดำเนินการดังกล่าวเป็น O (1)
นอกจากนี้ต้นไม้ทั่วไปยังมีมิลล์ของโหนดและไม่ควรเก็บไว้ใน RAM อย่างสมบูรณ์