Array is a linear data structure that stores elements in contiguous memory locations. Each element can be accessed directly using its index, which allows for efficient retrieval and modification.
def__grow(self): self.new__items = [0] * (self.__capacity * 2) for i inrange(self.__size): self.new__items[i] = self.__items[i] self.__items = self.new__items self.__capacity *= 2
definsert(self, index, item): if index < 0or index > self.__size: raise IndexError("Index out of bounds") ifself.__size == self.__capacity: self.__grow() for i inrange(self.__size, index, -1): self.__items[i] = self.__items[i - 1] self.__items[index] = item self.__size += 1 defappend(self, item): self.insert(self.__size, item)
defremove(self, index): if index < 0or index >= self.__size: raise IndexError("Index out of bounds") for i inrange(index, self.__size - 1): self.__items[i] = self.__items[i + 1] self.__size -= 1
defset(self, index, item): if index < 0or index >= self.__size: raise IndexError("Index out of bounds") self.__items[index] = item
defget(self, index): if index < 0or index >= self.__size: raise IndexError("Index out of bounds") returnself.__items[index]
deffind(self, item): for i inrange(self.__size): ifself.__items[i] == item: return i return -1
deffor_each(self, func): for i inrange(self.__size): func(self.__items[i])