Bird
Raised Fist0
DSA C#programming~5 mins

Floor and Ceil in BST in DSA C# - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the floor of a value in a Binary Search Tree (BST)?
The floor of a value in a BST is the greatest value in the BST that is less than or equal to the given value.
Click to reveal answer
beginner
What is the ceil of a value in a Binary Search Tree (BST)?
The ceil of a value in a BST is the smallest value in the BST that is greater than or equal to the given value.
Click to reveal answer
intermediate
In a BST, if the current node's value is greater than the target value, which subtree should you explore to find the floor?
You should explore the left subtree because values smaller than the current node might be closer to the target value but still less than or equal to it.
Click to reveal answer
intermediate
In a BST, if the current node's value is less than the target value, which subtree should you explore to find the ceil?
You should explore the right subtree because values greater than the current node might be closer to the target value but still greater than or equal to it.
Click to reveal answer
intermediate
What is the time complexity of finding floor or ceil in a balanced BST?
The time complexity is O(log n) because you traverse down the tree following BST properties, reducing the search space by half each step.
Click to reveal answer
What does the floor of a value in a BST represent?
AThe exact value if it exists
BThe smallest value greater than or equal to the target
CThe greatest value less than or equal to the target
DThe root value of the BST
If the current node's value is equal to the target, what is the floor and ceil?
AFloor and ceil are both the current node's value
BFloor is less, ceil is greater
CFloor is current node, ceil is right child
DFloor is left child, ceil is current node
Which subtree do you explore to find the ceil if current node's value is less than the target?
ALeft subtree
BBoth subtrees
CNo subtree
DRight subtree
What is the time complexity to find floor or ceil in a balanced BST?
AO(log n)
BO(n)
CO(1)
DO(n log n)
If no value in the BST is less than or equal to the target, what is the floor?
AThe smallest value in the BST
BNo floor exists (null)
CThe root value
DThe largest value in the BST
Explain how to find the floor of a given value in a BST step-by-step.
Think about how BST properties help narrow down the search.
You got /7 concepts.
    Describe the difference between floor and ceil in a BST with examples.
    Use simple numbers to illustrate the concept.
    You got /6 concepts.

      Practice

      (1/5)
      1. What does the floor of a value in a Binary Search Tree (BST) represent?
      easy
      A. The smallest value in the BST less than the given value
      B. The smallest value in the BST greater than or equal to the given value
      C. The greatest value in the BST less than or equal to the given value
      D. The root node value of the BST

      Solution

      1. Step 1: Understand the definition of floor in BST

        The floor of a value in BST is the largest value that is less than or equal to the given value.
      2. Step 2: Compare with options

        The greatest value in the BST less than or equal to the given value matches this definition exactly, while others describe ceil or unrelated concepts.
      3. Final Answer:

        The greatest value in the BST less than or equal to the given value -> Option C
      4. Quick Check:

        Floor = greatest ≤ value [OK]
      Hint: Floor is largest value ≤ target in BST [OK]
      Common Mistakes:
      • Confusing floor with ceil
      • Thinking floor is always smaller than the value
      • Assuming floor is the root value
      2. Which of the following is the correct C# method signature to find the ceil value in a BST node class?
      easy
      A. public int FindCeil(int key)
      B. int FindCeil(int key, Node root)
      C. public void FindCeil(Node root, int key)
      D. public int FindCeil(Node root, int key)

      Solution

      1. Step 1: Understand method signature requirements

        The method should be public, return an int (the ceil value), and accept the BST root node and the key to find ceil for.
      2. Step 2: Match with options

        public int FindCeil(Node root, int key) matches this: public int FindCeil(Node root, int key). int FindCeil(int key, Node root) has wrong parameter order, C returns void, D misses root parameter.
      3. Final Answer:

        public int FindCeil(Node root, int key) -> Option D
      4. Quick Check:

        Correct signature returns int and takes root, key [OK]
      Hint: Method returns int, takes root and key in order [OK]
      Common Mistakes:
      • Wrong parameter order
      • Using void return type
      • Missing root parameter
      3. Given the BST below and key = 14, what is the ceil value?
      
              10
             /  \
            5    15
                /  \
               12   20
      
      medium
      A. 12
      B. 15
      C. 20
      D. 10

      Solution

      1. Step 1: Understand ceil definition and BST structure

        Ceil is the smallest value greater than or equal to 14. The BST nodes are 10, 5, 15, 12, 20.
      2. Step 2: Find values ≥ 14 and pick smallest

        Values ≥ 14 are 15 and 20. The smallest among these is 15.
      3. Final Answer:

        15 -> Option B
      4. Quick Check:

        Ceil(14) = 15 [OK]
      Hint: Ceil is smallest ≥ key in BST [OK]
      Common Mistakes:
      • Choosing 12 which is less than 14
      • Choosing 20 which is greater but not smallest
      • Confusing ceil with floor
      4. Consider this buggy C# code snippet to find floor in BST:
      
      int FindFloor(Node root, int key) {
        if (root == null) return -1;
        if (root.val == key) return root.val;
        if (root.val > key) return FindFloor(root.left, key);
        int floorVal = FindFloor(root.right, key);
        return (floorVal <= key && floorVal != -1) ? floorVal : root.val;
      }
      
      What is the main issue causing incorrect floor results?
      medium
      A. The condition to check floorVal is incorrect and may return wrong value
      B. The base case returns -1 which may be confused with valid floor
      C. The function does not handle the case when root.val < key
      D. The function does not recurse on left subtree when root.val < key

      Solution

      1. Step 1: Analyze the floorVal condition

        The code checks if floorVal ≤ key and floorVal != -1 to decide return value. But floorVal could be less than root.val and still valid floor.
      2. Step 2: Identify the incorrect logic

        The condition should check if floorVal is greater than root.val to pick the better floor, but it doesn't, causing wrong floor return.
      3. Final Answer:

        The condition to check floorVal is incorrect and may return wrong value -> Option A
      4. Quick Check:

        Incorrect floorVal check causes wrong floor [OK]
      Hint: Check floorVal against root.val, not just key [OK]
      Common Mistakes:
      • Ignoring comparison with root.val
      • Returning -1 as valid floor
      • Not handling null root properly
      5. You want to find both floor and ceil of a key in a BST efficiently. Which approach is best to implement in C#?
      hard
      A. Traverse the BST once, updating floor and ceil candidates during traversal
      B. Perform two separate traversals: one for floor and one for ceil
      C. Convert BST to sorted array, then use binary search twice
      D. Use BFS traversal to find floor and ceil simultaneously

      Solution

      1. Step 1: Consider efficiency of approaches

        Two separate traversals or converting to array add extra time or space. BFS is not suitable for ordered search.
      2. Step 2: Single traversal updating floor and ceil

        During one BST traversal, compare node values with key to update floor (largest ≤ key) and ceil (smallest ≥ key) efficiently.
      3. Final Answer:

        Traverse the BST once, updating floor and ceil candidates during traversal -> Option A
      4. Quick Check:

        Single traversal updates floor and ceil efficiently [OK]
      Hint: Update floor and ceil in one BST traversal [OK]
      Common Mistakes:
      • Doing two separate traversals wasting time
      • Using BFS which ignores BST order
      • Converting BST to array wastes space
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard