ต้นไม้ (อังกฤษ: 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) หมายความว่าต้นไม้ย่อยที่ใช้สมาชิกของต้นไม้ที่พวกเราพินิจ ไปเป็นรากทำให้ เงื่อนลูกเงื่อนหลานที่อยู่ใต้สมาชิกตัวนั้นเปลี่ยนเป็นสมาชิกของต้นไม้ย่อยไปด้วย