สวัสดี บุคคลทั่วไป

ต้นไม้

  • 0 ตอบ
  • 255 อ่าน
ต้นไม้
« เมื่อ: ตุลาคม 06, 2018, 02:58:50 AM »
ต้นไม้ (อังกฤษ: Tree) เป็น แบบประเภทข้อมูลนามธรรม ชนิดหนึ่ง มีลักษณะการจัดเป็นแขนงแตกกิ่งออกไป จะไม่มีวงวน (loop) โยงในสมาชิกตัวต่างๆโดยสมาชิกจะถูกเก็บไว้ภายในชนิดข้อมูลประเภทวัตถุ (Object) หรือส่วนประกอบ (Structure) เรียกว่าเงื่อน (node) ซึ่งจะมีตัวแปรซึ่งเก็บเนื้อเก็บตัวชี้ (Pointer) ไปยังเงื่อนอื่นๆได้ เว็บแทงบอล

ต้นไม้ถูกใช้สำหรับการจัดแจงข้อมูลที่เทียบกันได้ (comparable) อย่างเร็วยกตัวอย่างเช่น จำนวน หรือ การจัดเรียงลำดับความสำคัญของข้อมูล ดังเช่นว่า การคำนวณที่มีวงเล็บ เป็นต้น

ต้นไม้

Binary search tree.svg

การจัดลำดับตัวของต้นไม้ในความนึกคิดของส่วนประกอบข้อมูล

จุดสำคัญของลำดับ   เรียงจากน้อยไปๆมาๆก

การซ้ำกันของสมาชิก   ไม่อนุญาตให้ซ้ำกัน

กระบวนการเข้าถึง(access)   การแวะผ่านต้นไม้ (tree traversal)

ในขณะที่ใช้สำหรับการเข้าถึง   O (log n),O (n) (สุดแท้แต่ลักษณะข้อมูลรวมทั้งองค์ประกอบต้นไม้)

องค์ประกอบข้อมูลที่มีลักษณะนี้   ต้นไม้ค้นหาแบบทวิภาค

ต้นไม้ (อังกฤษ: Tree) เป็น แบบจำพวกข้อมูลนามธรรม ชนิดหนึ่ง มีลักษณะการจัดเรียงเป็นกิ่งก้านแตกกิ่งออกไป จะไม่มีวงวน (loop) โยงในสมาชิกตัวต่างๆโดยสมาชิกจะถูกเก็บไว้ภายในชนิดข้อมูลประเภทวัตถุ (Object) หรือส่วนประกอบ (Structure) เรียกว่าเงื่อน (node) ซึ่งจะมีตัวแปรซึ่งเก็บเนื้อเก็บตัวชี้ (Pointer) ไปยังเงื่อนอื่นๆได้
ต้นไม้ถูกใช้เพื่อการจัดแจงข้อมูลที่เทียบกันได้ (comparable) อย่างเร็วดังเช่นว่า จำนวน หรือ การจัดลำดับความสำคัญของข้อมูล ตัวอย่างเช่น การคำนวณที่มีวงเล็บ เป็นต้น

รายละเอียด

1   องค์ประกอบของต้นไม้

2   ต้นไม้พิเศษ

3   ลักษณะเด่นของต้นไม้

4   ทรัพย์สินของต้นไม้ในทางเลขคณิตที่มักใช้

5   บริการที่ชอบมี

6   ความเร็วที่ใช้เพื่อทำงาน

7   การแวะผ่านต้นไม้

8   องค์ประกอบข้อมูลที่ฯลฯไม้

9   มองเพิ่ม

องค์ประกอบของต้นไม้

เงื่อน (node) เป็นสิ่งที่เก็บสมาชิกของต้นไม้

ราก (root) ซึ่งก็คือเงื่อนที่พวกเราใช้เริ่มค้นหาด้านในต้นไม้ ถ้าหากเป็น null หมายคือต้นไม้ว่าง (empty tree)

เงื่อนลูก (child node) หมายคือเงื่อนที่แตกออกมาจากของเงื่อนดังกล่าวข้างต้น ส่วนเงื่อนที่เงื่อนดังที่กล่าวมาแล้วข้างต้นแตกมาเรียกว่า เงื่อนบิดา (parent node) แล้วก็เรียกเงื่อนบิดาของเงื่อนบิดาว่า เงื่อนปู่ (grandparent node) และก็เรียกเป็นลำดับการนับพี่น้องข้างบิดาไปเรื่อยส่วนเงื่อนลูกของเงื่อนลูกก็จะเป็นเงื่อนหลาน (grandchild node) ไปเรื่อยเป็นลำดับการเรียกเครือญาติข้างลูก

เงื่อนที่มีเงื่อนบิดาเป็นเงื่อนเดียวกันเรียกว่า เงื่อนลูกพี่ลูกน้อง (sibling node)

เงื่อนที่มี m ลูก พวกเราจะเรียกว่า เงื่อนแบบ m (m-type node)

ใบ (leaf node) หมายความว่าเงื่อนที่ไม่มีเงื่อนลูก

การเขียนต้นไม้มักเขียนเงื่อนรากอยู่ด้านบน แล้วก็เขียนแตกกิ่งลงมาให้เงื่อนใบอยู่ด้านล่าง

ความลึกของเงื่อน (node depth) คือปริมาณครั้งของความเกี่ยวเนื่องเชิงบิดา-ลูก ระหว่าง เงื่อนรากถึงเงื่อนอะไรก็แล้วแต่

ความสูง (tree height) หมายคือความลึกของใบที่ลึกที่สุด สำหรับต้นไม้ซึ่งมีก็แต่รากจะสูง 0 แล้วก็ต้นไม้ว่างบางทีอาจตั้งได้ว่าสูง -1

ต้นไม้ย่อย (subtree) หมายความว่าต้นไม้ย่อยที่ใช้สมาชิกของต้นไม้ที่พวกเราพินิจ ไปเป็นรากทำให้ เงื่อนลูกเงื่อนหลานที่อยู่ใต้สมาชิกตัวนั้นเปลี่ยนเป็นสมาชิกของต้นไม้ย่อยไปด้วย