Tree Traversal — Struktur Data

Tree Traversal adalah cara mengunjungi semua node di tree. Ada dua pendekatan utama: DFS (Depth-First Search) Masuk sedalam mungkin dulu sebelum mundur. 3…

Tree Traversal adalah cara mengunjungi semua node di tree. Ada dua pendekatan utama:

DFS (Depth-First Search)

Masuk sedalam mungkin dulu sebelum mundur.

3 urutan DFS:

//       1
//      / \
//     2   3
//    / \
//   4   5

// In-order (Kiri → Root → Kanan): 4, 2, 5, 1, 3
function inOrder(node) {
  if (!node) return;
  inOrder(node.left);
  console.log(node.value);
  inOrder(node.right);
}

// Pre-order (Root → Kiri → Kanan): 1, 2, 4, 5, 3
function preOrder(node) {
  if (!node) return;
  console.log(node.value);
  preOrder(node.left);
  preOrder(node.right);
}

// Post-order (Kiri → Kanan → Root): 4, 5, 2, 3, 1
function postOrder(node) {
  if (!node) return;
  postOrder(node.left);
  postOrder(node.right);
  console.log(node.value);
}

BFS (Breadth-First Search)

Kunjungi level per level dari atas ke bawah.

// Level-order: 1, 2, 3, 4, 5
function bfs(root) {
  const queue = [root];
  while (queue.length > 0) {
    const node = queue.shift();
    console.log(node.value);
    if (node.left) queue.push(node.left);
    if (node.right) queue.push(node.right);
  }
}

Kapan pakai yang mana?

🎭 Analogi sehari-hari: Cara kamu eksplor mall.

💡 Cara hafal 3 DFS order: Posisi console.log(node) menentukan namanya:

Trik: ucapkan kapan node-nya "diproses" relatif ke child-nya.

⚠️ Jebakan umum:

🎯 DFS vs BFS kapan?

🧪 Tebakan cepat: Tree 1 → (2,3) → (4,5). In-order? 4,2,5,1,3. BFS? 1,2,3,4,5.

TL;DR: DFS = sedalam dulu (3 varian: pre/in/post). BFS = selevel dulu (queue). In-order BST = sorted. BFS = shortest path.