ต้นไม้ค้นหาทวิภาค
ต้นไม้ค้นหาทวิภาค
ต้นไม้ค้นหาทวิภาคเป็นโครงสร้างข้อมูลที่ใช้โครงสร้างของต้นไม้
ในการทําต้นไม้ค้นหาทวิภาค ต้นไม้ค้นหาทวิภาคคือต้นไม้ทวิภาคที่ข้อมูล
ของทุกๆ โหนดที่เป็นลูกด้านซ้ายมีค่าน้อยกว่าโหนดพ่อ และข้อมูลของ
ทุกๆ โหนดที่เป็นลูกด้านขวามีค่ามากกว่า หรือเท่ากับโหนดพ่อ ต้นไม้
ค้นหาทวิภาคสร้างขึ้นมาเพื่อสามารถเพิ่มเติมลบแก้ไขได้โดยง่าย จุดเด่น
ของต้นไม้ค้นหาทวิภาค คือการนําออก นําเข้า และการเรียงลําดับข้อมูล
ต้นไม้ค้นหาทวิภาค
จากภาพที่ 1 สามารถท่องเข้าไปในต้นไม้ค้นหาทวิภาค เพื่อเข้าถึงข้อมูลของแต่ละโหนดได้ทั้ง 3 แบบ
ดังนี้
ลําดับข้อมมูลเมื่อมีการท่องแบบก่อนลําดับ (Preorder Traversal) คือ
71,65,63,6,67,85,85,85,89,99
ลําดับข้อมูลเมื่อมีการท่องแบบตามลําดับ (Inorder Traversal) คือ
6,63,65,67,71,78,85,85,89,99
ลําดับข้อมูลเมื่อมีการท่องแบบหลังลําดับ (Postorder Traversal) คือ
6,63,67,65,78,85,99,89,85,71
จากการท่องเข้าไปในต้นไม้ค้นหาทวิภาคแบบตามลําดับ จะได้ข้อมูลที่เรียงลําดับจากน้อยไปหามาก
ต้นไม้ค้นหาทวิภาค
การเพิ่มโหนด
การเพิ่มโหนดเข้าไปในต้นไม้ค้นหาทวิภาค จะต้องพิจารณาว่า
ต้นไม้ค้นหารทวิภาคมีโหนดใดๆ อยู่ก่อนหรือไม่ ถ้าไม่มีให้เพิ่มโหนดเข้า
ไปเป็นโหนดรากของต้นไม้ค้นหาทวิภาค แต่ถ้าต้นไม้มีโหนดแล้ว ให้
พิจารณาว่า ถ้าเพิ่มโหนดเข้าไปในตําแหน่งใดๆ แล้ว ต้นไม้ที่ได้ยังเป็น
ต้นไม้ค้นหาทวิภาค เช่นถ้าต้องการเพิ่มโหนด 66 เข้าไปในต้นไม้ค้นหา
ทวิภาคของภาพ 2 (ก) สามารถแสดงขั้นตอนได้ดังภาพที่ 2 (ข)
ต้นไม้ค้นหาทวิภาค
ต้นไม้ค้นหาทวิภาค
การลบโหนด
การลบโหนดออกจากต้นไม้ค้นหาทวิภาค สามารถแบ่งได้เป็น 3 กรณี คือ
กรณีที่ 1 กรณีที่โหนดที่ต้องการลบเป็นโหนดใบ ให้ลบโหนดนั้นได้ทันที
กรณีที่ 2 กรณีที่โหนดที่ต้องการลบเป็นโหนดที่มีลูกด้านเดียว ให้โหนดลูกของโหนดที่
ต้องการลบไปเป็นโหนดลูกของโหนดพ่อของโหนดที่ต้องการลบ แล้วจึงลบโหนดที่ต้องการ
กรณีที่ 3 กรณีที่โหนดที่ต้องการลบเป็นโหนดที่มีลูกทั้งสองด้าน ให้พิจารณาทั้งหมดของ
ต้นไม้ย่อยทางด้านขวาของโหนดที่ต้องการลบว่าโหนดใดมีค่าน้อยที่สุด หรือพิจารณาโหนดทั้งหมด
ของต้นไม้ย่อยทางด้านซ้ายของโหนดที่ต้องการลบว่าโหนดใดมีค่ามากที่สุด เพื่อนํามาสลับตําแหน่ง
กับโหนดที่ต้องการลบ จากนั้นให้พิจารณาโหนดที่ต้องการลบสอีกครั้งว่าเข้ากรณีใด
ต้นไม้ค้นหาทวิภาค
ต้นไม้ค้นหาทวิภาคจะต้องเป็นต้นไม้ทวิภาคที่เป็นโครงสร้างข้อมูลแบบ
ต้นไม้ชนิดหนึ่ง ที่แต่ละโหนดมีลูกได้ไม่เกิน 2 โหนด คือลูกทางซ้าย และลูกทางขวา
โดยลักษณะพิเศษจําเพาะของต้นไม้ค้นหาทวิภาคคือแต่ละโหนดมีโหนดลูกอย่างมาก
ที่สุดเท่ากับ 2 ถ้าเกินนั้นแสดงว่าไม่ใช่ต้นไม่ค้นหาทวิภาค กล่าวคือมีโหนดลูก 2
โหนด ต่อหนึ่งโหนดโดยที่ข้อมูลของต้นไม้ด้านซ้ายจะต้องน้อยกว่าตัวข้อมูลของ
ต้นไม้ด้านขวา โดยจุดเด่นของต้นไม้ค้นหาทวิภาคคือความสามารถในการนําเอาข้อมูล
เข้า ความสามารถในวการนวําเอาข้อมูลออก และการเรียงลําดับข้อมูลตลอดเวลาทําให้
ตัดออกเป็นส่วนๆ ทําให้สเวลาในการค้นหากระทําได้ดี แต่ในบางกรณีที่ต้นไม้ยาวซึ่ง
จะทําให้ต้นไม้ทํางานช้าไม่สามารถรับประกันประสิทธิภาพได้ ซึ่งจะนําไปสู่แนวคิด
ในการทําต้นไม้เอวีแอลในหัวข้อถัดไป
ต้นไม้ค้นหาทวิภาค
จบแล้วค่ะ

Tree