ฉันกำลังมองหาวิธีที่จะรักษาต้นไม้ที่ทอดข้ามค่อนข้างสมดุลของกราฟในขณะที่ฉันเพิ่มโหนด / ขอบใหม่ให้กับกราฟ
ฉันมีกราฟที่ไม่มีทิศทางซึ่งเริ่มต้นเป็นโหนดเดียวคือ "รูท"
ในแต่ละขั้นตอนฉันเพิ่มกราฟทั้งโหนดใหม่และขอบเชื่อมต่อกับกราฟหรือเพียงแค่ขอบใหม่เชื่อมต่อสองโหนดเก่า ในขณะที่ฉันเติบโตกราฟฉันคงต้นไม้ที่ทอดไว้ ส่วนใหญ่แล้วนี่หมายความว่าเมื่อฉันเพิ่มโหนดและขอบใหม่ฉันตั้งค่าโหนดใหม่ให้เป็นลูกของโหนดเก่าที่มันเชื่อมต่อกับ
ฉันไม่สามารถควบคุมลำดับที่มีการเพิ่มโหนดใหม่ดังนั้นอัลกอริทึมการสร้างต้นไม้ด้านบนสามารถนำไปสู่ต้นไม้ที่ทอดได้อย่างสมดุล
ไม่มีใครรู้เกี่ยวกับการวิเคราะห์พฤติกรรมออนไลน์ที่จะทำให้ต้นไม้ที่ทอด "ค่อนข้างสมดุล" ในขณะที่ลดจำนวนงานที่ทำในการทำทรีใหม่หรือไม่ ฉันสามารถควบคุมโครงสร้างต้นไม้ได้อย่างสมบูรณ์ สิ่งที่ฉันไม่ควบคุมคือการเชื่อมต่อกราฟหรือลำดับที่เพิ่มโหนดใหม่
โปรดทราบว่าคำตอบมาตรฐานของ Google สำหรับคำเช่น "สมดุล" "การขยาย" และ "ต้นไม้" ดูเหมือนจะเป็นต้นไม้ไบนารีและต้นไม้ B ซึ่งไม่มีผลบังคับใช้ โหนดกราฟของฉันสามารถมีจำนวนเพื่อนบ้านได้ดังนั้นโหนดต้นไม้สามารถมีจำนวนเด็ก ๆ ได้ไม่ใช่ 2 เหมือนต้นไม้ไบนารี B-trees รักษาสมดุลโดยการเปลี่ยนรายการ adjacency ของพวกเขาและฉันไม่สามารถเปลี่ยนการเชื่อมต่อกราฟ