class Array:
def __init__(self, elements):
self.arr = elements
self.size = len(elements)
def delete_at_beginning(self):
if self.size == 0:
return # Nothing to delete
for i in range(1, self.size):
self.arr[i - 1] = self.arr[i] # Shift element left
self.size -= 1 # Reduce size
self.arr.pop() # Remove last duplicate element
def __str__(self):
return ' -> '.join(str(self.arr[i]) for i in range(self.size)) + ' -> null'
# Driver code
array = Array([10, 20, 30, 40])
print("Before deletion:", array)
array.delete_at_beginning()
print("After deletion:", array)Check if array is empty to avoid errors
for i in range(1, self.size):
Loop through elements starting from second to shift left
self.arr[i - 1] = self.arr[i]
Move each element one position left
Decrease size to reflect deletion
Remove last duplicate element after shifting
Before deletion: 10 -> 20 -> 30 -> 40 -> null
After deletion: 20 -> 30 -> 40 -> null