0
0
DSA Javascriptprogramming~3 mins

Why Top View of Binary Tree in DSA Javascript?

Choose your learning style9 modes available
The Big Idea

What if you could see a tree's hidden branches from above without climbing it?

The Scenario

Imagine you have a tall tree in your backyard. You want to see which branches are visible if you look at the tree from the top. If you try to list these branches by walking around the tree and guessing, it gets confusing fast.

The Problem

Manually figuring out which branches are visible from the top is slow and confusing because branches overlap when viewed from above. You might miss some branches or count the same branch multiple times.

The Solution

The top view of a binary tree helps you find exactly which nodes (branches) are visible from above by using a smart method that checks horizontal positions. This way, you get a clear list of visible nodes without guessing.

Before vs After
Before
function manualTopView(tree) {
  // Try to guess visible nodes by walking
  // This is slow and error-prone
  let visible = [];
  // No clear method here
  return visible;
}
After
function topView(root) {
  let queue = [{ node: root, hd: 0 }];
  let map = new Map();
  while (queue.length) {
    let { node, hd } = queue.shift();
    if (!map.has(hd)) map.set(hd, node.data);
    if (node.left) queue.push({ node: node.left, hd: hd - 1 });
    if (node.right) queue.push({ node: node.right, hd: hd + 1 });
  }
  return [...map.values()];
}
What It Enables

This concept lets you quickly find all nodes visible from the top of a binary tree, making complex tree views easy to understand and use.

Real Life Example

In city planning, when looking at buildings from above, top view helps decide which buildings are visible and which are hidden behind others.

Key Takeaways

Manual guessing of top view is confusing and slow.

Top view uses horizontal distances to find visible nodes.

This method gives a clear, quick list of visible nodes from above.