0
0
DSA Javascriptprogramming~10 mins

BST Property and Why It Matters in DSA Javascript - Execution Trace

Choose your learning style9 modes available
Concept Flow - BST Property and Why It Matters
Start at root node
Compare value to node
Go left
Repeat until
Null child found
Insert new node here
The BST property guides where to place or find values by comparing and moving left for smaller or right for larger values until the correct spot is found.
Execution Sample
DSA Javascript
class Node {
  constructor(val) {
    this.val = val;
    this.left = null;
    this.right = null;
  }
}
Defines a simple node structure for a BST with value and left/right pointers.
Execution Table
StepOperationCurrent Node ValueCompare WithPointer ChangesVisual State
1Start at root10Insert 5None10
2Compare 5 < 10105 < 10 is TrueMove left pointer10 / ?
3Left child is nullnullInsert 5 hereroot.left = Node(5) 10 / 5
4Start at root10Insert 15None 10 / 5
5Compare 15 > 101015 > 10 is TrueMove right pointer 10 / 5 ?
6Right child is nullnullInsert 15 hereroot.right = Node(15) 10 / \ 5 15
7Start at root10Insert 12None 10 / \ 5 15
8Compare 12 > 101012 > 10 is TrueMove right pointer 10 / \ 5 15 ?
9Compare 12 < 151512 < 15 is TrueMove left pointer 10 / \ 5 15 / ?
10Left child is nullnullInsert 12 here15.left = Node(12) 10 / \ 5 15 / 12
11EndN/AAll insertedNo changes 10 / \ 5 15 / 12
💡 Insertion stops when a null child pointer is found where the new node is attached.
Variable Tracker
VariableStartAfter Step 3After Step 6After Step 10Final
rootNode(10)Node(10) with left=Node(5)Node(10) with left=Node(5), right=Node(15)Node(10) with left=Node(5), right=Node(15 with left=Node(12))Same as After Step 10
currentNode(10)null (inserted 5)null (inserted 15)null (inserted 12)null
left child of 10nullNode(5)Node(5)Node(5)Node(5)
right child of 10nullnullNode(15)Node(15)Node(15)
left child of 15nullnullnullNode(12)Node(12)
Key Moments - 3 Insights
Why do we move left when the new value is smaller than the current node?
Because the BST property says smaller values go to the left subtree, as shown in steps 2 and 3 where 5 < 10 leads us left.
What happens if the child pointer is not null when inserting?
We continue moving down the tree following the BST property until we find a null child pointer to insert, as in steps 8 and 9 for inserting 12.
Why is the insertion stopped when we find a null child pointer?
Because that is the correct empty spot to place the new node, ensuring the BST property remains true, as seen in steps 3, 6, and 10.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the visual state after step 6?
A10 with left child 5 and right child 15
B10 with right child 15 only
C10 with left child 5 only
D10 with left child 12 and right child 15
💡 Hint
Check the Visual State column at step 6 showing both children attached to 10.
At which step does the insertion of the node with value 12 happen?
AStep 8
BStep 9
CStep 10
DStep 11
💡 Hint
Look for the step where the left child of 15 changes from null to Node(12).
If we tried to insert 20 instead of 12, which direction would we move after step 7?
ARight of 10
BRight of 15
CLeft of 15
DLeft of 10
💡 Hint
Compare 20 with 10 and 15 following the BST property in the execution table steps.
Concept Snapshot
BST Property:
- Left subtree nodes < parent node
- Right subtree nodes > parent node
- Used to find/insert efficiently
- Insert by comparing and moving left/right
- Stop at null child to insert new node
Full Transcript
The Binary Search Tree (BST) property means every node's left child has a smaller value and right child has a larger value. When inserting a new value, start at the root and compare. If smaller, go left; if larger, go right. Repeat until you find a null child pointer, then insert the new node there. This keeps the tree ordered and allows fast searching and insertion. The execution table shows inserting 5, 15, and 12 into a BST with root 10, moving left or right based on comparisons, and placing nodes at the correct null child pointers.