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

เธรดทรีไบนารีในโครงสร้างข้อมูล


ที่นี่ เราจะเห็นโครงสร้างข้อมูลต้นไม้ไบนารีแบบเธรด เรารู้ว่าโหนดไบนารีอาจมีลูกได้มากที่สุดสองคน แต่ถ้าพวกเขามีลูกเพียงคนเดียว หรือไม่มีลูก ส่วนลิงก์ในการแสดงรายการลิงก์ยังคงเป็นโมฆะ เมื่อใช้การแสดงไบนารีทรีแบบเธรด เราสามารถใช้ลิงก์ว่างนั้นซ้ำได้โดยการสร้างเธรดบางส่วน

หากโหนดหนึ่งมีพื้นที่ชายน์ว่างด้านซ้ายหรือขวา โหนดนั้นจะถูกใช้เป็นเธรด ทรีไบนารีแบบเธรดมีสองประเภท ต้นไม้แบบเธรดเดียวหรือไบนารีทรีแบบเธรดทั้งหมด ในโหมดเธรดเดี่ยว มีอีกสองรูปแบบ เกลียวซ้ายและเกลียวขวา

ในโหมดเธรดด้านซ้าย หากบางโหนดไม่มีโหนดย่อยด้านซ้าย ตัวชี้ด้านซ้ายจะชี้ไปที่รุ่นก่อนหน้าที่ไม่เรียงลำดับ ในทำนองเดียวกันในโหมดเธรดทางขวา หากโหนดบางตัวไม่มีโหนดย่อยที่ถูกต้อง ตัวชี้ขวาจะชี้ไปที่ตัวต่อเนื่องที่ไม่เรียงลำดับ ในทั้งสองกรณี ถ้าไม่มีผู้สืบทอดหรือรุ่นก่อน ก็จะชี้ไปที่โหนดส่วนหัว

สำหรับไบนารีทรีแบบเธรดทั้งหมด แต่ละโหนดมีห้าฟิลด์ สามฟิลด์เช่นโหนดไบนารีปกติ อีกสองฟิลด์สำหรับเก็บค่าบูลีนเพื่อระบุว่าลิงค์ของด้านนั้นเป็นลิงค์หรือเธรดจริงหรือไม่

แฟล็กเธรดด้านซ้าย ลิงก์ซ้าย ข้อมูล ลิงก์ขวา แฟล็กเธรดด้านขวา

เธรดทรีไบนารีในโครงสร้างข้อมูล

เหล่านี้คือตัวอย่างของต้นไม้เกลียวซ้ายและขวา

เธรดทรีไบนารีในโครงสร้างข้อมูล

นี่คือไบนารีทรีแบบเธรดแบบเต็ม

เธรดทรีไบนารีในโครงสร้างข้อมูล