Bird
Raised Fist0
DSA C++programming~5 mins

Array Deletion at Middle Index in DSA C++ - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What happens to the elements after deleting an element at the middle index in an array?
All elements after the deleted index shift one position to the left to fill the gap.
Click to reveal answer
beginner
Why can't we simply remove an element from the middle of a static array without shifting elements?
Because arrays have fixed size and continuous memory, removing an element leaves a gap that must be filled by shifting elements.
Click to reveal answer
intermediate
In C++, what is the time complexity of deleting an element at the middle index of an array?
O(n), where n is the number of elements after the deleted index, due to shifting elements.
Click to reveal answer
beginner
Show the array state after deleting the element at index 2 from [10, 20, 30, 40, 50].
After deletion and shifting: [10, 20, 40, 50]
Click to reveal answer
intermediate
What is the main difference between deleting an element in an array vs a linked list?
In arrays, elements after the deleted one must be shifted; in linked lists, pointers are adjusted without shifting elements.
Click to reveal answer
What must be done after deleting an element at the middle index in a static array?
AReplace it with zero and keep the rest unchanged
BShift all elements after it one position to the left
CShift all elements before it one position to the right
DNo action needed
What is the time complexity of deleting an element at the middle index in an array of size n?
AO(n^2)
BO(1)
CO(log n)
DO(n)
If you delete the element at index 0 in array [5, 10, 15], what is the resulting array?
A[10, 15]
B[5, 10]
C[15, 10]
D[5, 15]
Which data structure allows deletion at middle index without shifting elements?
AArray
BStack
CLinked List
DStatic Array
What is the main disadvantage of deleting elements in an array compared to a linked list?
ARequires shifting elements after deletion
BCannot delete elements
CTakes constant time
DUses more memory
Explain the steps to delete an element at the middle index of an array and how the array changes.
Think about how to fill the gap left by the deleted element.
You got /4 concepts.
    Compare deleting an element at the middle index in an array versus a linked list.
    Consider how elements are stored and accessed in both.
    You got /4 concepts.

      Practice

      (1/5)
      1. What happens when you delete the middle element from an array of size 5?
      int arr[5] = {10, 20, 30, 40, 50};
      Delete the element at index 2 (middle). What is the new array?
      easy
      A. [20, 30, 40, 50]
      B. [10, 20, 30, 40, 50]
      C. [10, 20, 30, 50]
      D. [10, 20, 40, 50]

      Solution

      1. Step 1: Identify the middle index and element

        The array size is 5, so middle index is 2. The element at index 2 is 30.
      2. Step 2: Delete the middle element and shift remaining elements

        Remove 30, then shift elements after index 2 left by one: 40 moves to index 2, 50 moves to index 3.
      3. Final Answer:

        [10, 20, 40, 50] -> Option D
      4. Quick Check:

        Deleted middle element 30, shifted left [OK]
      Hint: Remove middle, shift right elements left by one [OK]
      Common Mistakes:
      • Not shifting elements after deletion
      • Deleting wrong index
      • Leaving array size unchanged
      2. Which of the following C++ code snippets correctly deletes the middle element from an array arr of size n?
      easy
      A. for(int i = n/2; i < n-1; i++) arr[i] = arr[i+1]; n--;
      B. for(int i = 0; i < n/2; i++) arr[i] = arr[i+1]; n--;
      C. arr[n/2] = 0; n--;
      D. for(int i = n-1; i > n/2; i--) arr[i] = arr[i-1]; n--;

      Solution

      1. Step 1: Understand deletion logic

        To delete middle element at index n/2, shift all elements after it one position left.
      2. Step 2: Check each code snippet

        for(int i = n/2; i < n-1; i++) arr[i] = arr[i+1]; n--; correctly shifts elements from middle to end left by one and reduces size. Others either shift wrong elements or just set zero without shifting.
      3. Final Answer:

        for(int i = n/2; i < n-1; i++) arr[i] = arr[i+1]; n--; -> Option A
      4. Quick Check:

        Shift elements after middle left [OK]
      Hint: Shift elements from middle index to end left [OK]
      Common Mistakes:
      • Shifting elements before middle index
      • Not reducing array size
      • Assigning zero instead of shifting
      3. What is the output of the following C++ code?
      int arr[6] = {5, 10, 15, 20, 25, 30};
      int n = 6;
      int mid = n / 2;
      for(int i = mid; i < n - 1; i++) {
        arr[i] = arr[i + 1];
      }
      n--;
      for(int i = 0; i < n; i++) {
        std::cout << arr[i] << " ";
      }
      medium
      A. 5 10 15 25 30
      B. 5 10 15 20 25 30
      C. 5 10 15 20 30
      D. 5 10 20 25 30

      Solution

      1. Step 1: Calculate middle index and delete element

        n=6, mid=3. Element at index 3 is 20. We delete 20 by shifting elements after index 3 left.
      2. Step 2: Shift elements and print array

        Shift arr[3]=arr[4]=25, arr[4]=arr[5]=30. New array: 5,10,15,25,30. Size reduced to 5.
      3. Final Answer:

        5 10 15 25 30 -> Option A
      4. Quick Check:

        Deleted 20, shifted left [OK]
      Hint: Shift elements after middle left, reduce size by one [OK]
      Common Mistakes:
      • Not reducing array size
      • Printing old array size
      • Not shifting elements correctly
      4. Find the error in this code that tries to delete the middle element from array arr of size n:
      int mid = n / 2;
      for(int i = mid; i <= n - 1; i++) {
        arr[i] = arr[i + 1];
      }
      n--;
      medium
      A. Array size n should not be decremented
      B. Middle index calculation is wrong
      C. Loop condition should be i < n - 1, not i <= n - 1
      D. Loop should start from 0, not mid

      Solution

      1. Step 1: Analyze loop range for shifting elements

        The loop runs from mid to n-1 inclusive, so arr[i+1] accesses arr[n], which is out of bounds.
      2. Step 2: Correct loop condition

        Loop should run while i < n-1 to avoid accessing beyond array size.
      3. Final Answer:

        Loop condition should be i < n - 1, not i <= n - 1 -> Option C
      4. Quick Check:

        Prevent out-of-bounds by correct loop limit [OK]
      Hint: Loop till one before last index to avoid overflow [OK]
      Common Mistakes:
      • Using <= instead of < in loop condition
      • Not decrementing array size
      • Wrong middle index calculation
      5. Given an array arr of size n, write the logic to delete the middle element and return the new array size. What will be the size after deletion if n is even?
      Choose the correct approach.
      hard
      A. Delete element at index (n-1)/2, shift elements left, new size = n - 1
      B. Delete element at index n/2, shift elements left, new size = n - 1
      C. Delete element at index n/2, no shifting needed, new size = n - 1
      D. Delete element at index n/2 - 1, shift elements left, new size = n - 1

      Solution

      1. Step 1: Understand middle index for even-sized array

        In standard array operations, middle index is n/2 (integer division), consistent with odd sizes.
      2. Step 2: Delete element at n/2 and shift elements left

        Remove element at index n/2, shift all elements after it left by one, reduce size by 1.
      3. Final Answer:

        Delete element at index n/2, shift elements left, new size = n - 1 -> Option B
      4. Quick Check:

        Middle index = n/2 for even n [OK]
      Hint: Use n/2 as middle index regardless of parity [OK]
      Common Mistakes:
      • Deleting lower middle index (n/2 - 1) for even n
      • Not shifting elements after deletion
      • Not reducing array size
      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