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