The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

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

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by pakawat.ptm, 2023-02-07 05:52:03

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

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

โครงสร้า ร้ ง แบบต้นไม้ โครงสร้าร้งข้อข้มูลต้นไม้(ม้ Tree Data Structure) หรือรืเรียรีกสั้นสั้ๆ ว่าว่ทรี(รีTree) เป็นป็ โครงสร้าร้งข้อข้มูล รูปแบบหนึ่งในลักษณะ โครงสร้าร้งข้อข้มูลชนิดไม่เม่ชิงชิเส้นส้ (Non-Linear) ที่สามารถนาไป ใช้ใช้นการจัดจัการ กับข้อข้มูลได้อย่าย่งมีปมีระสิทสิธิภธิาพ สมาชิกแชิต่ละตัว ในทรีสรีามารถเชื่อชื่มโยงไปยังยัสมาชิกชิตัวถัดไป (Successor) ได้ มากกว่าว่หนึ่งตัวและเชื่อชื่มโยงถึงกัน เรียรีบเรียรีงโดย นายภควัฒวัน์ โพธิมธิา ปวส. 2 แผนกเทคโนโลยีสยีารสนเทศ เลขที่ 6


โครงสร้าร้งข้อข้มูลแบบต้นไม้ (ม้ Tree Structure) เป็นป็ โครงสร้าร้งแบบไม่เม่ชิงชิเส้นส้ (Non Linear) การจัดจัเก็บข้อข้ มูลมีลมีกัษณะเป็นป็ลำ ดับดัชั้นชั้ (Hierarchical) ข้อข้มูลแต่ละ รายการจะเรียรีกว่าว่ โหนด แต่ละโหนดจะมีพมีอยน์เน์ตอร์ชั้ร์นชั้ ไปยังยัโหนดถัดลงไปเรื่อรื่ยๆ เป็นป็ลำ ดับดัชั้นชั้ โดยโหนดเริ่มริ่ ต้น จะเรียรีกว่าว่ราก หรือรืรูทรูโหนด (Root Node) และ จากรูทรูโหนดก็จะมีกมีารเชื่อชื่มโยงไปยังยัโหนดอื่นๆ ด้วด้ยเส้นส้ เชื่อชื่มโยงที่เรียรีกว่าว่บรานซ์ (Branch) ซ์ คำ นำ


สาระบัญ บั สาระสำ คัญ 1 จุดประสงค์เชิงชิพฤติกรรม 2-3 โครงสร้า ร้ งข้อ ข้ มูลแบบต้นไม้ 4 ลักษณะโครงสร้า ร้ งข้อ ข้ มูลแบบต้นไม้ 5 ศัพท์ที่ใช้เ ช้ รียรีกแต่ละส่ว ส่ นของต้นไม้ 6-9 ไบนารีทรีร 10 ไบนารีทรีรีแรีบบสมบูรณ 11 ลักษณะโครงสร้า ร้ ง ข้อ ข้ มูลแบบไบนารีทรีรี 12


สาระสำ คัญ โครงสร้าร้งข้อข้มูลแบบต้นไม้ (ม้ Tree Structure) เป็นป็ โครงสร้าร้งแบบไม่เม่ชิงชิเส้นส้ (Non Linear) การจดัเดัก็บขอ้มูลมีลมีกัษณะเป็นป็ลา ดบั ช้นัช้ นั (Hierarchical) ข้อข้มูลแต่ละรายการจะเรียรีกว่าว่ โหนด แต่ละโหนดจะมีพมีอยน์เน์ตอร์ช้ีร์ ช้ีไปยงัโหนดถดัลดังไปเรื่อรื่ยๆ เป็นป็ลา ดบั ช้นัช้ นัโดยโหนดเริ่มริ่ตน้ จะเรียรีกว่าว่ ราก หรือรืรูทรูโหนด (Root Node) และจากรูทรูโหนดก็จะ มีกมีารเชื่อชื่มโยงไปยังยัโหนดอื่นๆ ด้วด้ยเส้นส้ เชื่อชื่มโยงที่เรียรีกว่าว่บรานซ์ (Branch) ซ์ 1


จุดประสงค์เชิงชิพฤติกรรม 1. อธิบธิายลักษณะโครงสร้า ร้ งข้อ ข้ มูลแบบต้นไม้ ได้ 2. อธิบธิายความหมายของศัพท์ที่ใช้เ ช้ รียรีกแต่ละ ส่ว ส่ นของต้นไม้ไม้ ด้ 3. อธิบธิายลักษณะของไบนารีทรีรีไรีด้ 4. อธิบธิายลักษณะโครงสร้า ร้ งข้อ ข้ มูลแบบไบนารี ทรีไรีด้ 5. อธิบธิายการท่องเข้า ข้ไปในไบนารีทรีรีด้รีว ด้ ยวิธีวิ ธี การต่างๆ ได้ 6. อธิบธิายไบนารีเรีสิร์สิชร์ทรีไรีด 21


จากโครงสร้าร้งข้อข้มูลที่กล่าวมาแล้วไม่ว่ม่าว่จะเป็น ป็ อาร์เร์รย์ สแตก คิว หรือรืลิงค์ลิสต์ ล้วน แต่เป็น ป็ โครงสร้าร้งข้อข้มูลแบบเชิงชิเส้นส้ (Linear List) ท้ังสิ้นสิ้นั่นนั่คือ มีลัมี ลักษณะการเก็บข้อข้มูลแบบ เรียรีงลำ ดับดัแต่ถา้เราต้องการเก็บข้อข้มูลที่มีลัมี ลัก ษณะ เป็น ป็ ลำ ดับดัชั้นชั้ (Hierarchical) เช่นช่เก็บรายชื่อชื่คณะ ผู้บผู้ ริหริารในบริษัริ ษัทที่มีกมีารไล่ระดับดัลงมาเรื่อรื่ยๆ หรือรื เก็บรายชื่อชื่บรรพบุรุษรุ -ลูกลูหลานคนในตระกูลกู โครงสร้าร้งข้อข้มูลที่จะเก็บข้อข้มูลในลกัษณะน้ีควรจะมี ลกั ษณะเป็น ป็ ลา ดบั ช้นัช้ นัเช่นช่กนั นนั่ ก็คือจะใช้ โครงสร้าร้งข้อข้มูลแบบต้นไม้ 3


โครงสร้า ร้ งข้อ ข้ มูลแบบต้นไม้ โครงสร้าร้งข้อข้มูลแบบต้นไม้ เรียรีกอีกอย่าย่งหนึ่งว่าว่ โครงสร้าร้ง ทรี(Tree Structure) รีเป็น โครงสร้าร้งข้อข้มูลแบบไม่เม่ชิงชิเส้นส้หรือรืไม่เม่รียรีงลำ ดับ (Non Linear) การจัดจัเก็บข้อข้มูลมีลัมี ลักษณะเป็นป็ ลำ ดับดัชั้นชั้ (Hierarchical) เหมือมืนต้นไม้ใม้นธรรมชาติแต่จะแตกต่าง กันตรงที่ต้นไม้ใม้นธรรมชาติจะ ยืนยืต้นขึ้นขึ้สูงสูมีรมีากชั้นชั้ลงข้าข้งล่าง แต่โครงสร้าร้งต้นไม้ใม้นคอมพิวพิเตอร์ จะกลับตรงข้าข้มนั้นนั้คือจะมีใมีบ แตกกิ่งก้านสาขาลงด้านล่าง ส่วส่นด้านบนจะเป็นรากของต้นไม้ 4


ลักษณะโครงสร้าร้งข้อข้มูลแบบต้นไม้ปม้ระกอบด้วด้ย โหนด (Node) ซึ่งซึ่ใช้เช้ป็น ป็ ที่เก็บข้อข้มูล โดยโหนดเริ่มริ่ตน้จน้ะเรียรีกว่าว่ราก หรือรืรูทรูโหนด (Root Node) จากรูทรูโหนดจะมีกมีารเชื่อชื่มไปยังยั โหนด อื่นด้วด้ยพอยน์เน์ตอร์ และแต่ละโหนดก็จะมีพมีอยน์ เตอร์ไร์ปยังยัโหนดถัดกัน ไปเรื่อรื่ยๆ เป็น ป็ ลำ ดับดัชั้นชั้ เหมือมืนต้นไม้จม้นถึงปลายโหนด ซึ่งซึ่เป็น ป็ โหนดที่ไม่มีม่ มี การชี้ไชี้ปยังยัโหนดอื่นอีก นั่นนั่คือพอยน์เน์ตอร์ขร์อง โหนดที่ปลายจะเป็น ป็ NULL ลักษณะโครงสร้า ร้ งข้อ ข้ มูลแบบต้นไม้ 5


ศัพท์ที่ใช้เ ช้ รีย รี กแต่ละส่ว ส่ นของต้นไม้ เนื่องจากโครงสร้า ร้ งข้อ ข้ มูลแบบต้นไม้ม ม้ าลำ ดับ ชั้นชั้คล้ายกับการลำ ดับ บรรพบุรุษ ดังนั้นนั้จึงจึมี ศัพท์ที่ใช้ใช้ นการเรียรีกแต่ละส่ว ส่ นของต้นไม้เ ม้ ลียน แบบความสัมสัพันพัธ์รธ์ะหว่า ว่ งพ่อ พ่ ลูกลูดังต่อไปนี้ 1. รูทรูโหนด (Root Node) คือ โหนดแรกสุดสุ ของโครงสร้า ร้ งต้นไม้ 2. ระดับดั (Level) คือ ช้ันของโหนดซึ่งซึ่ถูกถูระบุ ด้ว ด้ ยหมายเลขโดยที่จะกำ หนดให้รู ห้ ทรูโหนดเป็น ป็ ระดับดัศูนย์แย์ละไล่ระดับดัของโหนดด้ว ด้ ยการเพิ่มพิ่ จำ นวนทีละ 1 3. บรานซ์(ซ์Branch) เป็น ป็ เส้น ส้ เชื่อชื่มโยง ระหว่า ว่ งโหนดที่มีคมีวามสัมสัพันพัธ์กัธ์ กัน ทำ ให้ท ห้ ราบ ว่า ว่ เป็น ป็ โหนดพ่อ พ่ แม่ห ม่ รือรืโหนดลูกลูบางครั้งรั้อาจ เรียรีกว่า ว่ edge หรือรื Link 6


4. โหนดพ่อพ่แม่ (Parent Node) คือ โหนดที่ อยู่รยู่ะดับดัสูงสูกว่าว่ โหนดที่ระบุอยู่หยู่นึ่งนึ่ระดับดั โดยมี เส้นส้บรานซ์เซ์ชื่อชื่มความสัมสัพันพัธ์ใธ์ห้ทห้ราบ 5. โหนดลูกลู (Child Node) คือ โหนดที่อยู่ต่ำยู่ ต่ำ กว่าว่ โหนดที่ระบุอยู่หยู่นึ่งนึ่ระดับดั โดยมีเมีส้นส้บรานซ์ เชื่อชื่มความสัมสัพันพัธ์ใธ์ห้ทห้ราบ 6. โหนดพี่น้ พี่ อน้ง (Sibling Node) คือ โหนดที่ อยู่ใยู่นระดับดัเดียดีวกัน และมีพ่มีอพ่แม่เม่ดียดีวกัน 7. โหนดใบ (Leaf Node) คือ โหนดที่ไม่มีม่ มี โหนดถัดไปหรือรืโหนดที่ไม่มีม่ลูมีกลูอยู่เยู่ลย 8. โหนดบรรพชน (Ancestor) คือ โหนดทุกทุ โหนดในบรานซ์เซ์ดียดีวกัน โดยเริ่มริ่ลำ ดับดัตั้งตั้แต่รูทรู โหนดมาจนถึงโหนดที่ระบ 9. โหนดสืบสืสกุลกุ (Descendant) คือ โหนด ทุกทุโหนดที่อยู่บยู่นต้นไม้ย่ม้อย่ยด้าด้นซ้าซ้ยและ ต้นไม้ ย่อย่ยด้าด้นขวาของโหนดที่ระบุ 7


4. โหนดพ่อพ่แม่ (Parent Node) คือ โหนดที่ อยู่รยู่ะดับดัสูงสูกว่าว่ โหนดที่ระบุอยู่หยู่นึ่งนึ่ระดับดั โดยมี เส้นส้บรานซ์เซ์ชื่อชื่มความสัมสัพันพัธ์ใธ์ห้ทห้ราบ 5. โหนดลูกลู (Child Node) คือ โหนดที่อยู่ต่ำยู่ ต่ำ กว่าว่ โหนดที่ระบุอยู่หยู่นึ่งนึ่ระดับดั โดยมีเมีส้นส้บรานซ์ เชื่อชื่มความสัมสัพันพัธ์ใธ์ห้ทห้ราบ 6. โหนดพี่น้ พี่ อน้ง (Sibling Node) คือ โหนดที่ อยู่ใยู่นระดับดัเดียดีวกัน และมีพ่มีอพ่แม่เม่ดียดีวกัน 7. โหนดใบ (Leaf Node) คือ โหนดที่ไม่มีม่ มี โหนดถัดไปหรือรืโหนดที่ไม่มีม่ลูมีกลูอยู่เยู่ลย 8. โหนดบรรพชน (Ancestor) คือ โหนดทุกทุ โหนดในบรานซ์เซ์ดียดีวกัน โดยเริ่มริ่ลำ ดับดัตั้งตั้แต่รูทรู โหนดมาจนถึงโหนดที่ระบ 9. โหนดสืบสืสกุลกุ (Descendant) คือ โหนด ทุกทุโหนดที่อยู่บยู่นต้นไม้ย่ม้อย่ยด้าด้นซ้าซ้ยและ ต้นไม้ ย่อย่ยด้าด้นขวาของโหนดที่ระบุ 8


10. ดีกดีรี(รีDegree)คือจำ นวนโหนดลูกลูทั้งทั้หมด ของโหนดที่ระบุ 11. ต้นไม้ย่ม้อย่ย(Subtree) คือโครงสร้าร้งแบบต้น ไม้ใม้นต้น ไม่ทั้ม่ ทั้งทั้ต้น และโหนดแรกใน ต้นไม้ย่ม้อย่ยจะ เป็น ป็ รูทรูโหนดของต้นไม้ย่ม้อย่ยน้ันๆ โดยทั่วทั่ ไปจะแบ่งบ่ เป็น ป็ ต้นไม้ย่ม้อย่ยด้าด้นซ้าซ้ย(Left Subtree)และต้นไม้ ย่อย่ยด้าด้นขวา (Right Subtree) 12. ทรีว่รีาว่ง (Empty Tree)คือโครงสร้าร้งต้น ไม้ทม้ ที่ไม่มีม่ โมีหนด นั้นนั้คือจำ นวนโหนดเท่ากับ ศูนย์ 9


ไบนารีทรีรี (Binary Tree) เป็น ป็ โครงสร้าร้งต้นไม้ที่ม้ ที่ มี รูปรูแบบเหมือมืนกับต้นไม้ทั่ม้ ทั่วทั่ ไปโดย มีคุมีณคุสมบัติบั ติที่ สำ คัญ คือ โหนดแต่ละโหนดสามารถมีโมีหนดย่อย่ย (Subtree) หรือรื โหนดลูกลู (Child Node) ได้ได้ม่ เกิน 2 โหนด โดยโหนดย่อย่ยด้าด้นซ้าซ้ยจะเรียรีกว่าว่ ต้นไม้ย่ม้อย่ยด้าด้นซ้าซ้ย(Left Subtree)และ โหนด ย่อย่ยด้าด้นขวาจะเรียรีกว่าว่ต้นไม้ย่ม้อย่ยด้าด้นขวา (Right Subtree) ซึ่งซึ่ต้นไม้ย่ม้อย่ยทั้งทั้ด้าด้นซ้าซ้ยและ ด้าด้นขวา ต่างก็มีคุมีณคุสมบัติบั ติเป็น ป็ ไบนารีทรีรี ไบนารีท รี ร 10


ไบนารีท รี รีแ รี บบสมบูรณ ไบนารีทรีรีแรีบบสมบูรณ์ (Complete Binary Tree) จะมีลมีกัษณะดงัน้ีคือโหนดทุกทุโหนด จะต้องมี โหนดลูกลู 2โหนดยกเว้นว้ โหนดใบ และระดับดัของ โหนดใบต้องอยู่ใยู่นระดับดัเดียดีวกัน นอกจากนี้ยั นี้ งยัมีไมีบนารีทรีรีที่รี ที่ เกือบสมบูรณ์(ณ์Nearly Complete Binary Tree) นั้นนั้คือเป็น ป็ ไบ นารีทรีรีที่รี ที่ มีโมีหนดเต็มทุกทุโหนดยกเว้นว้ ในระดับดัสุดสุท้าย ที่มีโมีหนดไม่คม่รบตามที่กำ หนด 11


ลักษณะโครงสร้าร้งข้อข้มูลแบบไบนารีทรีรีเรีมื่อมื่ถูกถูนำ ไปใช้ใช้นงานการ เขียขีนโปรแกรม จะต้องสร้าร้งตัวแปรขึ้นขึ้มาก่อน เพื่อพื่แทนแต่ละโหนดที่อยู่ภยู่ายใน ไบนารีทรีรี โดยตัวแปรจะต้อง ประกอบด้วย 3 ส่วส่น ดงัน้ี ส่วส่นที่ 1 Data Field คือ ส่วส่นที่ใช้เช้ก็บข้อข้มูล จะเป็นป็ตัวแปรชนิด ใดขึ้นขึ้อยู่กัยู่ กับ ประเภท ของข้อข้มูลที่ต้องการจัดจัเก็บในโหนด ส่วส่นที่ 2 Left Link คือ พอยน์เน์ตอร์(Pointer) ร์สำ หรับรัชี้ไชี้ปยังยั ต้นไม้ย่ม้อย่ยด้านซ้าซ้ย (Left Subtree) เพื่อพื่ที่จะบอกว่าว่ โหนดถัดลงไปทางด้านซ้าซ้ยคือโหนด ใด ส่วส่นที่ 3 Right Link คือ พอยน์เน์ตอร์(Pointer) ร์สำ หรับรัชี้ไชี้ปยังยั ต้นไม้ย่ม้อย่ยด้านขวา (Right Subtree) เพื่อพื่ที่จะบอกว่าว่ โหนดถัดลงไปทางด้านขวา ลักษณะโครงสร้า ร้ งข้อ ข้ มูลแบบ ไบนารีท รี รี 12


Click to View FlipBook Version