15.10.25

Deletion and Shifting in Arrays

Deletion and Shifting in Arrays 

Hey everyone! 
Here’s a simple C program that demonstrates how to delete elements from an array and shift the remaining elements to fill the empty spot.

We’ll be deleting elements one by one specifically 40, then 10, then 30, and finally 50 while watching how the array updates each time.

Code:

/*Deletion and shifting of arrays*/
#include <stdio.h>

int main() {

  printf("Initial array:\n");
  printf("| 10 | 20 | 30 | 40 | 50 | 60 | 70 |\n\n");

  int magic_numbers[7] = {10, 20, 30, 40, 50, 60, 70};

  printf("| %d | %d | %d | %d | %d | %d | %d |\n", magic_numbers[0],
         magic_numbers[1], magic_numbers[2], magic_numbers[3], magic_numbers[4],
         magic_numbers[5], magic_numbers[6]);

  int delete_position = 3; /*40*/
  printf("\nDeleting element at position %d and shifting.\n", delete_position);

  magic_numbers[3] = magic_numbers[4];
  magic_numbers[4] = magic_numbers[5];
  magic_numbers[5] = magic_numbers[6];
  magic_numbers[6] = 0;

  printf("| %d | %d | %d | %d | %d | %d | %d |\n", magic_numbers[0],
         magic_numbers[1], magic_numbers[2], magic_numbers[3], magic_numbers[4],
         magic_numbers[5], magic_numbers[6]);

  /* Delete 10 */
  printf("\nDeleting element at position %d and shifting.\n", delete_position);

  magic_numbers[0] = magic_numbers[1];
  magic_numbers[1] = magic_numbers[2];
  magic_numbers[2] = magic_numbers[3];
  magic_numbers[3] = magic_numbers[4];
  magic_numbers[4] = magic_numbers[5];
  magic_numbers[5] = magic_numbers[6];
  magic_numbers[6] = 0;

  printf("| %d | %d | %d | %d | %d | %d | %d |\n", magic_numbers[0],
         magic_numbers[1], magic_numbers[2], magic_numbers[3], magic_numbers[4],
         magic_numbers[5], magic_numbers[6]);

  /* Delete 30 */
  printf("\nDeleting element at position %d and shifting.\n", delete_position);

  magic_numbers[1] = magic_numbers[2];
  magic_numbers[2] = magic_numbers[3];
  magic_numbers[3] = magic_numbers[4];
  magic_numbers[4] = magic_numbers[5];
  magic_numbers[5] = magic_numbers[6];
  magic_numbers[6] = 0;

  printf("| %d | %d | %d | %d | %d | %d | %d |\n", magic_numbers[0],
         magic_numbers[1], magic_numbers[2], magic_numbers[3], magic_numbers[4],
         magic_numbers[5], magic_numbers[6]);

  /* Delete 50 */
  printf("\nDeleting element at position %d and shifting.\n", delete_position);

  magic_numbers[1] = magic_numbers[2];
  magic_numbers[2] = magic_numbers[3];
  magic_numbers[3] = magic_numbers[4];
  magic_numbers[4] = magic_numbers[5];
  magic_numbers[5] = magic_numbers[6];
  magic_numbers[6] = 0;

  printf("| %d | %d | %d | %d | %d | %d | %d |\n", magic_numbers[0],
         magic_numbers[1], magic_numbers[2], magic_numbers[3], magic_numbers[4],
         magic_numbers[5], magic_numbers[6]);

  return 0;
}

Output Explanation

Initial Array:

| 10 | 20 | 30 | 40 | 50 | 60 | 70 |

1.Delete 40 (Position 3)

After removing 40, the array shifts left:

| 10 | 20 | 30 | 50 | 60 | 70 | 0 |

2.Delete 10 (Position 0)

Remove the first element and shift everything left again:

| 20 | 30 | 50 | 60 | 70 | 0 | 0 |

3.Delete 30 (Position 1)

After deleting 30:

| 20 | 50 | 60 | 70 | 0 | 0 | 0 |

4.Delete 50 (Position 1 again)

After deleting 50:

| 20 | 60 | 70 | 0 | 0 | 0 | 0 |

What did we do?

When we delete an element from an array:

  1. We shift every element after it one position to the left.

  2. The last element becomes empty (0) or NULL.


No comments:

Post a Comment

rating System

Loading...

A Friendship Story of Learning Data Structures with C

Sr. No. DSU BLOGS CHAPTERS 1 Array Operations in C, The Group of Friendship (Create, Insert, Delete ...