แต่ละ element ใน tree คือ node เราต้องกำหนด node ก่อนที่จะไปกำหนด binary tree เพราะ tree ประกอบด้วย nodes เราจะสร้าง node definition เรียบง่ายที่มี 3 properties คือ left, right และ data
- left - เก็บ reference ไปยัง left child ของ node นี้
- right - เก็บ reference ไปยัง right child ของ node นี้
- data - เก็บ reference ไปยังข้อมูลที่เราต้องการเก็บใน node นี้
มาดูโครงสร้างโค้ดของ node:
ตัวอย่าง
class Node {
constructor(data, left = null, right = null) {
this.data = data;
this.left = left;
this.right = right;
}
}
เรากำหนด Node data structure ด้วย constructor ที่รับ 3 properties คือ data, left, right เราจะสร้าง node กับ left และ right เป็น null เพราะเราจะ insert ค่าที่ leaves
เพื่อความสะดวก เราจะกำหนด Node เป็น property ของ BinarySearchTree class ที่เราจะสร้าง เพื่อเก็บคลาสนี้ไว้ในที่ที่เราใช้
สังเกตว่า node ที่มี left และ right properties แบบชัดเจนนี้จำเป็นสำหรับ binary trees สำหรับ multiway trees เช่น B-trees หรือ B+ trees เราจะกำหนด property children ซึ่งเป็น array (หรือ container อื่นๆ)