17
บทที่ 5 โครงสร้างข้อมูลแบบต้นไม้ (TREE DATA STRUCTURE)

บทที่ 5 โครงสร้างข้อมูลแบบ ... · 2017-08-31 · •เป็นโครงสร้างไม่เชิงเส้น (non linear)

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: บทที่ 5 โครงสร้างข้อมูลแบบ ... · 2017-08-31 · •เป็นโครงสร้างไม่เชิงเส้น (non linear)

บทที่ 5โครงสร้างข้อมูลแบบต้นไม้

(TREE DATA STRUCTURE)

Page 2: บทที่ 5 โครงสร้างข้อมูลแบบ ... · 2017-08-31 · •เป็นโครงสร้างไม่เชิงเส้น (non linear)

โครงสรา้งขอ้มูลแบบตน้ไม ้•เป็นโครงสรา้งไม่เชงิเสน้ (NON LINEAR) มลีกัษณะคลา้ยกิง่กา้นตน้ไม ้

แตกกิง่กา้นออกไป เชน่เดยีวกบัธรรมชาตขิองขา่วสารขอ้มูล

•ตน้ไมแ้ตกกิง่จากลา่งไปบน แตโ่ครงสรา้งขอ้มูลในคอมพวิเตอรจ์ะ

กลบัหวั จดุทีแ่ตกกิง่ออกไป เรยีกวา่โหนด (NODE) ขา่วสารเก็บอยู่ที่

โหนด

•จดุเช ือ่มโหนดเรยีกวา่ลงิค(์LINK)

Page 3: บทที่ 5 โครงสร้างข้อมูลแบบ ... · 2017-08-31 · •เป็นโครงสร้างไม่เชิงเส้น (non linear)
Page 4: บทที่ 5 โครงสร้างข้อมูลแบบ ... · 2017-08-31 · •เป็นโครงสร้างไม่เชิงเส้น (non linear)

นิยามโครงสรา้งตน้ไม ้

•มโีหนดพเิศษเรยีกว่า รากหรอืรตู (ROOT NODE), R

•โหนดอืน่ๆ ทีไ่ม่ใชร่ตู ถกูแบ่งย่อยออกเป็น N กลุม่ แตล่ะกลุม่ไม่มี

โหนดรว่มกนัเลย แตล่ะกลุม่ก็เป็นตน้ไมเ้หมอืนกนั แต่เรยีกวา่เป็น

ตน้ไมย้่อย (SUB TREE)

Page 5: บทที่ 5 โครงสร้างข้อมูลแบบ ... · 2017-08-31 · •เป็นโครงสร้างไม่เชิงเส้น (non linear)

โครงสรา้งตน้ไม ้

• R คอืรตูโหนดของตน้ไมย้่อย A,B,C,D

• A คอืรตูโหนดของตน้ไมย้่อย E, F, G

• F คอืรตูโหนดของตน้ไมย้่อย J

• B คอืรตูโหนดของตน้ไมย้่อย H และ I

Page 6: บทที่ 5 โครงสร้างข้อมูลแบบ ... · 2017-08-31 · •เป็นโครงสร้างไม่เชิงเส้น (non linear)

ดกีรขีองโหนด (LEVEL DEGREE)

คอืจาํนวนตน้ไมย่้อยของโหนดน้ัน

• A มดีกีรเีป็น 3

• B มดีกีรเีป็น 2

• F มดีกีรเีป็น 1

• C,D,E,G,H,I,J มดีกีรเีป็น 0

Page 7: บทที่ 5 โครงสร้างข้อมูลแบบ ... · 2017-08-31 · •เป็นโครงสร้างไม่เชิงเส้น (non linear)

โหนดทีเ่ป็นใบ (LEAF NODE)

คือโหนดที่มีดีกรีเป็น 0 ส่วนโหนดที่มีดีกรีมากกว่า 0

เรียกว่า โหนดภายใน

( INTERIOR/BRANCH NODE )

• A,B,F เป็นโหนดภายใน

• C,D,E,G,H,I,J เป็นโหนดใบ

Page 8: บทที่ 5 โครงสร้างข้อมูลแบบ ... · 2017-08-31 · •เป็นโครงสร้างไม่เชิงเส้น (non linear)

ป่า (FOREST)

• คือ โครงสร้างต้นไม้ทีน่ําเอาโหนดราก (ROOT) ออกไปเหลือเฉพาะต้นไม้หรือกิ่งของ

โครงสร้างต้นไม้นั้น ๆ

Page 9: บทที่ 5 โครงสร้างข้อมูลแบบ ... · 2017-08-31 · •เป็นโครงสร้างไม่เชิงเส้น (non linear)

โครงสร้างต้นไม้แบบทวิภาค (BINARY TREE)

•โครงสรา้งตน้ไมท้วภิาค (BINARY TREE) คอื ตน้ไมท้ีม่โีหนดราก

(ROOT) และทุกจดุยอดอาจมลีกู(CHILD) ทางซา้ย, ลกูทางขวา, ลกู

ทางซา้ยและลกูทางขวา หรอืไม่มลีกูเลย

•โครงสรา้งตน้ไมท้วภิาคแบบสมบรูณ ์(COMPLETE BINARY TREE) คอื

โครงสรา้งตน้ไมท้วภิาคทีท่กุจดุยอดมลีกูทัง้สองดา้นหรอืไม่มลีกูเลย

Page 10: บทที่ 5 โครงสร้างข้อมูลแบบ ... · 2017-08-31 · •เป็นโครงสร้างไม่เชิงเส้น (non linear)
Page 11: บทที่ 5 โครงสร้างข้อมูลแบบ ... · 2017-08-31 · •เป็นโครงสร้างไม่เชิงเส้น (non linear)

โครงสรา้งตน้ไมท้ัว่ไป (GENERAL TREES)โครงสรา้งตน้ไมท้ัว่ไป คอื เซตจาํกดั T ทีม่สีมาชกิเรยีกวา่โหนด ซึง่

ประกอบดว้ยคณุลกัษณะดงันี้

•T เป็นตน้ไมว้า่ง (NULL TREE หรอื EMPTY TREE) หรอื

•T มสีมาชกิพเิศษ คอื โหนด R อยู่หน่ึงโหนดทีเ่รยีกวา่ ROOT NODE

•สมาชกิทีเ่หลอืของ T อาจประกอบดว้ยตน้ไมย่้อยทีม่จีาํนวนสมาชกิ

เป็นศนูยห์รอืมากกวา่ ไดแ้ก ่T1 , T2 , ... , Tท

Page 12: บทที่ 5 โครงสร้างข้อมูลแบบ ... · 2017-08-31 · •เป็นโครงสร้างไม่เชิงเส้น (non linear)

การแทนโครงสรา้งตน้ไม ้

•คอื การแทนความสมัพนัธท์ีเ่กดิขึน้จากรปูโครงสรา้งตน้ไมด้ว้ยรปูที่

สามารถประมวลผลดว้ยคอมพวิเตอร ์ซ ึง่แบ่งออกเป็น 2 วธิี

Page 13: บทที่ 5 โครงสร้างข้อมูลแบบ ... · 2017-08-31 · •เป็นโครงสร้างไม่เชิงเส้น (non linear)

1.การแทนโครงสร้างต้นไม้ด้วยโครงสร้างอาร์เรย์ (ARRAY)•การแทนโครงสรา้งตน้ไมด้ว้ยโครงสรา้งอารเ์รยจ์ะตอ้งใชอ้ารเ์รยอ์ย่าง

นอ้ย

3 ชดุสาํหรบัเป็นทีเ่ก็บของขอ้มูลและพอยนเ์ตอรท์ีช่ ีไ้ปยงัโหนดลกู

ทางดา้น

ซา้ยและดา้นขวา

Page 14: บทที่ 5 โครงสร้างข้อมูลแบบ ... · 2017-08-31 · •เป็นโครงสร้างไม่เชิงเส้น (non linear)

2. การแทนโครงสร้างต้นไม้ด้วยโครงสร้างรายการเชื่อมโยง (LINKED LIST)•การใชโ้ครงสรา้งขอ้มูล LINKED LIST มาแทนตน้ไมโ้ดยแตล่ะโหนดจะ

ประกอบดว้ย 3 สว่น คอืLEFT , INFO ,RIGHT โดย สว่น LEFT จะเป็น

ตวัเช ือ่มไปยงัตน้ไมย่้อยในระดบัถดัไปทีอ่ยู่ทางซา้ย , RIGHT จะชีไ้ปยงั

ตน้ไมย้่อยในระดบัถดัไปทางดา้นขวา INFO จะเก็บขอ้มูลของโหนด

และตน้ไมย่้อยทีว่า่ง (ไม่มตีน้ไมย้่อยตอ่อยู่) แสดงดว้ย X สาํหรบัคา่

NULL

Page 15: บทที่ 5 โครงสร้างข้อมูลแบบ ... · 2017-08-31 · •เป็นโครงสร้างไม่เชิงเส้น (non linear)
Page 16: บทที่ 5 โครงสร้างข้อมูลแบบ ... · 2017-08-31 · •เป็นโครงสร้างไม่เชิงเส้น (non linear)

โครงสรา้งตน้ไมแ้บบ THREADED TREE

•การนําไบนารทีรมีกีารปรบัปรงุแกไ้ขโดยวธิกีารดาํเนินการแบบ

รายการเชือ่มโยง โดยมกีารเพิม่โหนดพเิศษทีเ่รยีกวา่ โหนดนํา

(HEADER NODE) ไวท้ีจ่ดุเร ิม่ตน้ของ T และกาํหนดใหH้EAD เป็นพอยน์

เตอรท์ีช่ ีไ้ปยงั HEADER NODE และพอยนเ์ตอรท์างซา้ยของ HEADER

NODE จะชีไ้ปยงั ROOT ของทรี

Page 17: บทที่ 5 โครงสร้างข้อมูลแบบ ... · 2017-08-31 · •เป็นโครงสร้างไม่เชิงเส้น (non linear)