Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

ซ้าย-ลูก-ขวา-พี่น้องเป็นตัวแทนของต้นไม้


Left-Child Right-Sibling Representation เป็นการแสดงที่แตกต่างกันของทรี n-ary โดยที่แทนที่จะรักษาตัวชี้ไปยังโหนดย่อยทุกโหนด โหนดจะมีพอยน์เตอร์เพียงสองตัว ตัวแรกตัวชี้ไปยังโหนดย่อยตัวแรก และตัวชี้อีกตัวหนึ่ง มันเป็นพี่น้องคนต่อไปทันที การแปลงรูปแบบใหม่นี้ไม่เพียงแต่ขจัดความจำเป็นในการมีความรู้ก่อนหน้าเกี่ยวกับจำนวนโหนดลูกที่โหนดมี แต่ยังจำกัดจำนวนพอยน์เตอร์ไว้ไม่เกิน 2 ตัว ซึ่งทำให้เขียนโค้ดได้ง่ายขึ้นมาก

ในแต่ละโหนด เชื่อมโยงหรือเชื่อมต่อลูกของผู้ปกครองคนเดียวกันจากซ้ายไปขวา

ผู้ปกครองควรเชื่อมโยงกับลูกคนแรกเท่านั้น

ตัวอย่าง

ซ้าย ลูก ขวา พี่น้องต้นไม้แทน

10
|
2 -> 3 -> 4 -> 5
| |
6 7 -> 8 -> 9

ข้อดี

  • การแสดงนี้ช่วยประหยัดหน่วยความจำโดยการจำกัดจำนวนพอยน์เตอร์สูงสุดที่ต้องการต่อโหนดเหลือเพียง 2 ตัว
  • เขียนโค้ดง่ายกว่า

ข้อเสีย

  • การทำงานพื้นฐาน เช่น การค้นหา/แทรก/ลบใช้เวลานานกว่าเพราะในการเลือกตำแหน่งที่แน่นอน เราจะต้องสำรวจผ่านพี่น้องทั้งหมดของโหนดเพื่อทำการค้นหา/แทรก/ลบ (ตามกรณีที่เลวร้ายที่สุด)