0
0
DSA Javascriptprogramming~20 mins

Why BST Over Plain Binary Tree in DSA Javascript - Challenge Your Understanding

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
BST Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Why is a Binary Search Tree (BST) preferred over a plain Binary Tree for searching?

Consider you want to find a number in a tree structure. Which reason best explains why a BST is better than a plain Binary Tree for this task?

ABST stores elements randomly, so it uses less memory than a plain Binary Tree.
BBST keeps elements sorted, so searching can skip half the tree at each step, making it faster.
CBST allows duplicate values easily, unlike a plain Binary Tree.
DBST nodes have more children than a plain Binary Tree, so it is wider.
Attempts:
2 left
💡 Hint

Think about how sorting helps in quickly finding a number.

Predict Output
intermediate
2:00remaining
Output of Searching in BST vs Plain Binary Tree

Given the following trees, what will be the output of searching for value 7?

BST structure: 5 (root), left child 3, right child 8, left child of 3 is 2, right child of 3 is 4, left child of 8 is 7

Plain Binary Tree structure: 5 (root), left child 8, right child 3, left child of 8 is 7, right child of 3 is 2

Assume search returns 'Found' if value exists, else 'Not Found'.

DSA Javascript
function searchBST(node, val) {
  if (!node) return 'Not Found';
  if (node.val === val) return 'Found';
  if (val < node.val) return searchBST(node.left, val);
  else return searchBST(node.right, val);
}

function searchPlainBT(node, val) {
  if (!node) return 'Not Found';
  if (node.val === val) return 'Found';
  return searchPlainBT(node.left, val) === 'Found' ? 'Found' : searchPlainBT(node.right, val);
}

// Outputs:
// A: searchBST(rootBST, 7) and searchPlainBT(rootPlainBT, 7)
// B: searchBST(rootBST, 7) only
// C: searchPlainBT(rootPlainBT, 7) only
// D: Neither finds 7
ABoth searchBST and searchPlainBT return 'Found'
BOnly searchBST returns 'Found', searchPlainBT returns 'Not Found'
COnly searchPlainBT returns 'Found', searchBST returns 'Not Found'
DBoth return 'Not Found'
Attempts:
2 left
💡 Hint

Check if 7 exists in both trees.

🔧 Debug
advanced
2:00remaining
Why does this BST search code fail on some inputs?

Look at this JavaScript function to search a BST. It sometimes returns 'Not Found' even when the value exists. Why?

DSA Javascript
function searchBST(node, val) {
  if (!node) return 'Not Found';
  if (node.val === val) return 'Found';
  if (val < node.val) return searchBST(node.left, val);
  else return searchBST(node.right, val);
}
AUsing '<=' causes the search to go left even when val equals node.val, missing the correct node.
BThe function should check right child first before left child.
CThe base case is wrong; it should return null instead of 'Not Found'.
DThe function does not handle empty trees properly.
Attempts:
2 left
💡 Hint

Think about what happens when val equals node.val.

🚀 Application
advanced
2:00remaining
Choosing Data Structure for Fast Lookup and Ordered Data

You need to store a list of unique numbers and frequently check if a number exists and also get numbers in sorted order. Which data structure is best?

AUse a linked list because it keeps insertion order and is easy to search.
BUse a plain Binary Tree because it is simpler and faster for all operations.
CUse a Binary Search Tree (BST) because it supports fast search and keeps data sorted.
DUse an unsorted array because searching is faster with linear scan.
Attempts:
2 left
💡 Hint

Think about how to get sorted data and fast search together.

🧠 Conceptual
expert
2:00remaining
Why can a BST degrade to a plain Binary Tree in worst cases?

What causes a BST to behave like a plain Binary Tree with slow search times?

ASearching for values not in the tree converts it into a plain Binary Tree.
BDeleting nodes randomly causes the BST to lose its structure.
CUsing duplicate values causes the BST to become unordered.
DInserting elements in sorted order creates a skewed tree, losing the balanced property.
Attempts:
2 left
💡 Hint

Think about how insertion order affects tree shape.