A BST is a special type of binary tree where each node's left child has a smaller value, and the right child has a larger value than the node itself.
Click to reveal answer
beginner
Why is searching faster in a BST compared to a plain binary tree?
Because BST keeps nodes in order, it allows skipping half of the tree at each step, making search faster than checking every node in a plain binary tree.
Click to reveal answer
intermediate
What is the average time complexity of search in a BST?
The average time complexity is O(log n), where n is the number of nodes, because the tree is divided roughly in half at each step.
Click to reveal answer
beginner
What is a major drawback of a plain binary tree for searching?
A plain binary tree has no order, so searching may require checking every node, resulting in O(n) time complexity.
Click to reveal answer
intermediate
How does the structure of a BST help with insertion and deletion?
BST structure keeps data ordered, so insertion and deletion can be done efficiently by following the tree's order rules, usually in O(log n) time.
Click to reveal answer
What property distinguishes a BST from a plain binary tree?
AAll nodes have the same value
BEach node has exactly two children
CLeft child is smaller, right child is larger
DNodes are arranged randomly
✗ Incorrect
BSTs keep nodes ordered so left child is smaller and right child is larger.
What is the worst-case time complexity for searching in a plain binary tree?
AO(log n)
BO(n)
CO(1)
DO(n log n)
✗ Incorrect
Without order, searching may require checking all nodes, which is O(n).
Why is searching in a BST usually faster than in a plain binary tree?
ABecause BSTs are balanced by default
BBecause BSTs use hashing
CBecause BSTs have fewer nodes
DBecause BSTs store data in order allowing skipping half the nodes
✗ Incorrect
BSTs keep data ordered, so search can skip large parts of the tree.
Which operation benefits from the BST property?
AAll of the above
BInsertion
CSearching
DDeletion
✗ Incorrect
BST property helps searching, insertion, and deletion by keeping data ordered.
What happens if a BST becomes unbalanced?
ASearch time degrades to O(n)
BSearch time improves
CInsertion becomes impossible
DTree becomes a plain binary tree
✗ Incorrect
An unbalanced BST can behave like a linked list, making search O(n).
Explain why a Binary Search Tree is preferred over a plain binary tree for searching data.
Think about how order helps find data faster.
You got /4 concepts.
Describe how the structure of a BST affects insertion and deletion operations compared to a plain binary tree.
Consider how order guides where to add or remove nodes.
You got /4 concepts.
Practice
(1/5)
1. Why is a Binary Search Tree (BST) preferred over a plain Binary Tree for searching operations?
easy
A. BST does not require pointers to child nodes.
B. BST uses less memory than a plain Binary Tree.
C. BST nodes can have more than two children.
D. BST allows faster search by maintaining sorted order of elements.
Solution
Step 1: Understand the structure difference
A BST keeps elements in sorted order where left child is smaller and right child is larger, unlike a plain Binary Tree which has no order.
Step 2: Analyze search efficiency
Because of this order, BST allows searching by comparing and moving left or right, reducing search time to O(log n) on average, while plain Binary Tree search is O(n).
Final Answer:
BST allows faster search by maintaining sorted order of elements. -> Option D
Quick Check:
BST sorted order = faster search [OK]
Hint: BST keeps order for quick search decisions [OK]
Common Mistakes:
Thinking BST uses less memory than plain Binary Tree
Confusing number of children in BST
Assuming BST nodes don't have child pointers
2. Which of the following is the correct way to check if a node's value is less than the root's value in JavaScript BST code?
easy
A. if (node.value < root.value) {}
B. if node.value < root.value {}
C. if (node.value << root.value) {}
D. if node.value < root.value then {}
Solution
Step 1: Identify correct JavaScript syntax for if statement
JavaScript requires parentheses around the condition and curly braces for the block.
Step 2: Check comparison operator and syntax
The less than operator is <, and it must be inside parentheses: if (condition) {} is correct.
Final Answer:
if (node.value < root.value) {} -> Option A
Quick Check:
Correct if syntax = if (node.value < root.value) {} [OK]
Hint: Use parentheses and curly braces in if statements [OK]
Common Mistakes:
Omitting parentheses around condition
Using incorrect operators like <<
Writing if without parentheses or braces
3. What will be the output of the following code snippet that inserts values into a BST and then performs an in-order traversal?
class Node {
constructor(value) {
this.value = value;
this.left = null;
this.right = null;
}
}
class BST {
constructor() {
this.root = null;
}
insert(value) {
const newNode = new Node(value);
if (!this.root) {
this.root = newNode;
return;
}
let current = this.root;
while (true) {
if (value < current.value) {
if (!current.left) {
current.left = newNode;
break;
}
current = current.left;
} else {
if (!current.right) {
current.right = newNode;
break;
}
current = current.right;
}
}
}
inOrder(node, result = []) {
if (node) {
this.inOrder(node.left, result);
result.push(node.value);
this.inOrder(node.right, result);
}
return result;
}
}
const tree = new BST();
tree.insert(10);
tree.insert(5);
tree.insert(15);
tree.insert(7);
console.log(tree.inOrder(tree.root));
medium
A. [5, 7, 10, 15]
B. [10, 5, 7, 15]
C. [15, 10, 7, 5]
D. [7, 5, 10, 15]
Solution
Step 1: Insert nodes into BST
Insert 10 as root, 5 to left of 10, 15 to right of 10, 7 to right of 5.
Step 2: Perform in-order traversal
In-order visits left subtree, root, then right subtree. So order is 5, 7, 10, 15.
Final Answer:
[5, 7, 10, 15] -> Option A
Quick Check:
In-order BST traversal = sorted values [OK]
Hint: In-order traversal of BST gives sorted list [OK]
Common Mistakes:
Confusing traversal order
Inserting nodes incorrectly
Expecting pre-order or post-order output
4. The following code attempts to insert a value into a BST but causes an infinite loop. What is the error?
insert(value) {
const newNode = new Node(value);
if (!this.root) {
this.root = newNode;
return;
}
let current = this.root;
while (true) {
if (value < current.value) {
if (!current.left) {
current.left = newNode;
break;
} else {
current = current.left;
}
} else {
if (!current.right) {
current.right = newNode;
break;
} else {
current = current.right;
}
}
}
}
medium
A. New node is not created properly.
B. Incorrect comparison operator used.
C. Missing break statement after inserting new node.
D. Root node is not initialized.
Solution
Step 1: Analyze loop behavior after insertion
After assigning newNode to left or right child, loop continues without break, causing infinite loop.
Step 2: Identify missing break
Adding break after insertion stops the loop and prevents infinite iteration.
Final Answer:
Missing break statement after inserting new node. -> Option C
Quick Check:
Break after insert stops infinite loop [OK]
Hint: Add break after insertion to exit loop [OK]
Common Mistakes:
Forgetting break after insertion
Changing comparison operators unnecessarily
Assuming new node creation is faulty
5. You want to store a large set of numbers and perform frequent searches. Why would using a balanced BST be better than a plain Binary Tree or an unbalanced BST?
hard
A. Balanced BST uses less memory than unbalanced BST.
B. Balanced BST guarantees O(log n) search time, unlike unbalanced BST or plain Binary Tree.
C. Balanced BST allows nodes to have multiple parents for faster access.
D. Balanced BST does not require pointers to child nodes.
Solution
Step 1: Understand search time in different trees
Plain Binary Tree search is O(n), unbalanced BST can degrade to O(n) if skewed, balanced BST keeps height low.
Step 2: Benefit of balanced BST
Balanced BST maintains height around log n, ensuring search, insert, delete operations are O(log n) consistently.
Final Answer:
Balanced BST guarantees O(log n) search time, unlike unbalanced BST or plain Binary Tree. -> Option B
Quick Check:
Balanced BST = consistent fast search [OK]
Hint: Balance keeps tree height low for fast search [OK]
Common Mistakes:
Thinking balanced BST uses less memory
Believing nodes can have multiple parents
Assuming no child pointers needed
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.