What is the main difference between a Binary Search Tree (BST) and a plain Binary Tree?
A BST keeps its nodes in a sorted order where left child nodes are smaller and right child nodes are larger than the parent node, while a plain Binary Tree has no such order.
Click to reveal answer
beginner
Why is searching faster in a BST compared to a plain Binary Tree?
Because BST nodes are sorted, you can decide to go left or right at each step, cutting the search space in half, unlike a plain Binary Tree where you may need to check every node.
Click to reveal answer
intermediate
How does the structure of a BST help in insertion and deletion operations?
Insertion and deletion in a BST maintain the sorted order, allowing these operations to be done efficiently by following the tree structure, unlike in a plain Binary Tree where no order is maintained.
Click to reveal answer
intermediate
What is the average time complexity for search, insert, and delete operations in a balanced BST?
The average time complexity is O(log n) for search, insert, and delete because the tree height is kept low, allowing quick traversal.
Click to reveal answer
beginner
Can a plain Binary Tree guarantee O(log n) search time? Why or why not?
No, a plain Binary Tree cannot guarantee O(log n) search time because it does not maintain any order, so you might have to check every node, leading to O(n) time in the worst case.
Click to reveal answer
What property does a Binary Search Tree maintain that a plain Binary Tree does not?
ANodes have no order
BEach node has exactly two children
CNodes are sorted so left child < parent < right child
DNodes are stored in a linked list
✗ Incorrect
A BST keeps nodes sorted so that left child is smaller and right child is larger than the parent.
Why is searching in a BST generally faster than in a plain Binary Tree?
ABecause BST nodes are sorted, allowing binary search
BBecause BST has fewer nodes
CBecause BST uses hashing
DBecause BST stores nodes in an array
✗ Incorrect
BST allows binary search by comparing values and choosing left or right subtree.
What is the worst-case time complexity of searching in a plain Binary Tree?
AO(log n)
BO(n)
CO(1)
DO(n log n)
✗ Incorrect
Without order, you may need to check all nodes, leading to O(n) time.
Which operation benefits from the BST property of sorted nodes?
AInsertion
BDeletion
CSearching
DAll of the above
✗ Incorrect
Insertion, deletion, and searching all use the sorted property to be efficient.
If a BST is unbalanced and looks like a linked list, what happens to the search time?
AIt becomes O(n)
BIt stays O(log n)
CIt becomes O(1)
DIt becomes O(n log n)
✗ Incorrect
An unbalanced BST can degrade to 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 you find things faster.
You got /5 concepts.
Describe how insertion works differently in a BST compared to a plain Binary Tree.
Insertion in BST follows rules to keep order.
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. Because BST keeps elements in sorted order allowing faster search
B. Because BST uses less memory than a plain Binary Tree
C. Because BST nodes can have more than two children
D. Because BST does not require pointers to child nodes
Solution
Step 1: Understand the structure of BST vs plain Binary Tree
A BST stores nodes so that left child is smaller and right child is larger, keeping data sorted. A plain Binary Tree has no order.
Step 2: Analyze search efficiency
Because BST is sorted, searching can skip half the tree at each step, making it faster than searching a plain Binary Tree which may require checking all nodes.
Final Answer:
Because BST keeps elements in sorted order allowing faster search -> Option A
Quick Check:
Sorted structure = faster search [OK]
Hint: BST is sorted, plain tree is not, so search is faster [OK]
Common Mistakes:
Thinking BST uses less memory
Confusing number of children in BST
Assuming BST has no pointers
2. Which of the following is the correct TypeScript syntax to declare a node in a Binary Search Tree?
easy
A. class Node { value: number; left: Node | null; right: Node | null; }
B. function Node(value) { this.value = value; this.left = null; this.right = null; }
D. type Node = { value: number; left?: Node; right?: Node }
Solution
Step 1: Identify correct TypeScript class syntax for BST node
class Node { value: number; left: Node | null; right: Node | null; } correctly declares a class with value and nullable left and right nodes using TypeScript types.
Step 2: Check other options for correctness
function Node(value) { this.value = value; this.left = null; this.right = null; } is JavaScript function style, not TypeScript class. interface Node { value: string; left: Node; right: Node; } uses string value and non-nullable children which is incorrect. type Node = { value: number; left?: Node; right?: Node } uses optional children but is a type alias, not a class.
Final Answer:
class Node { value: number; left: Node | null; right: Node | null; } -> Option A
Quick Check:
TypeScript class with nullable children = class Node { value: number; left: Node | null; right: Node | null; } [OK]
Hint: Look for TypeScript class with nullable left/right nodes [OK]
Common Mistakes:
Confusing JavaScript function with TypeScript class
Using non-nullable children causing errors
Using wrong value types
3. Given the following BST insertion code snippet, what will be the in-order traversal output after inserting values 10, 5, 15, 3, 7?
medium
A. [5, 3, 7, 10, 15]
B. [10, 5, 15, 3, 7]
C. [15, 10, 7, 5, 3]
D. [3, 5, 7, 10, 15]
Solution
Step 1: Insert values into BST in given order
Insert 10 as root, 5 to left, 15 to right, 3 to left of 5, 7 to right of 5.
Traverse left subtree: 3, 5, 7; then root 10; then right subtree 15. Combined: [3, 5, 7, 10, 15]
Final Answer:
[3, 5, 7, 10, 15] -> Option D
Quick Check:
In-order traversal of BST = sorted values [OK]
Hint: In-order traversal of BST always gives sorted list [OK]
Common Mistakes:
Confusing traversal order
Inserting nodes incorrectly
Mixing up left and right children
4. Identify the bug in this BST insertion function snippet in TypeScript:
function insert(root: Node | null, val: number): Node {
if (!root) return new Node(val);
if (val < root.value) insert(root.left, val);
else insert(root.right, val);
return root;
}
medium
A. Node constructor is called without new keyword
B. Missing return statements for recursive calls
C. Incorrect comparison operator for BST insertion
D. Function does not handle duplicate values
Solution
Step 1: Analyze recursive calls in insertion
The recursive calls insert(root.left, val) and insert(root.right, val) do not assign the returned node back to root.left or root.right.
Step 2: Identify missing return assignments
Without assigning, the tree structure does not update. Correct code should be root.left = insert(root.left, val) and root.right = insert(root.right, val).
Final Answer:
Missing return statements for recursive calls -> Option B
Quick Check:
Recursive insert must update child links [OK]
Hint: Always assign recursive insert results to child nodes [OK]
Common Mistakes:
Not assigning recursive call results
Using wrong comparison operators
Ignoring duplicates silently
5. You have a plain Binary Tree and a BST both containing the same values. Which operation benefits the most from using the BST instead of the plain Binary Tree, and why?
hard
A. Traversing all nodes, because BST traversal is faster than plain tree traversal
B. Inserting a new value, because BST insertion is always O(1)
C. Searching for a value, because BST allows O(log n) average time search
D. Deleting a node, because BST deletion never requires rebalancing
Solution
Step 1: Compare searching in BST vs plain Binary Tree
BST keeps nodes sorted, enabling binary search-like behavior with average O(log n) time. Plain Binary Tree has no order, so search is O(n).
Step 2: Evaluate other operations
Insertion in BST is not always O(1), deletion may require rebalancing, and traversal visits all nodes in both trees equally.
Final Answer:
Searching for a value, because BST allows O(log n) average time search -> Option C
Quick Check:
BST speeds up search, not insertion or traversal [OK]
Hint: BST speeds up search, not insertion or traversal [OK]
Common Mistakes:
Thinking insertion is always O(1)
Assuming deletion never needs rebalancing
Believing traversal is faster in BST
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.