ต้นไม้ค้นหาทวิภาค
ต้นไม้ค้นหา
ทวิภาค
ต้นไม้ค้นหาทวิภาคเป็นโครงสร้างข้อมูลที่ใช้
โครงสร้างของต้นไม้ในการทำาต้นไม้ค้นหาทวิภาค
ต้นไม้ค้นหาทวิภาคคือต้นไม้ทวิภาคที่ข้อมูลของ
ทุกๆ โหนดที่เป็นลูกด้านซ้ายมีค่าน้อยกว่าโหนด
พ่อ และข้อมูลของทุกๆ โหนดที่เป็นลูกด้านขวามี
ค่ามากกว่า หรือเท่ากับโหนดพ่อ ต้นไม้ค้นหา
ทวิภาคสร้างขึ้นมาเพื่อสามารถเพิ่มเติมลบแก้ไข
ได้โดยง่าย จุดเด่นของต้นไม้ค้นหาทวิภาค คือ
การนำาออก นำาเข้า และการเรียงลำาดับข้อมูล
ต้นไม้ค้นหา
ทวิภาค
จากภาพที่ 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