|
| 1 | +# Author: OMKAR PATHAK |
| 2 | + |
| 3 | +class Array(object): |
| 4 | + ''' sizeOfArray: denotes the total size of the array to be initialized |
| 5 | + arrayType: denotes the data type of the array(as all the elements of the array have same data type) |
| 6 | + arrayItems: values at each position of array |
| 7 | + ''' |
| 8 | + def __init__(self, sizeOfArray, arrayType = int): |
| 9 | + self.sizeOfArray = len(list(map(arrayType, range(sizeOfArray)))) |
| 10 | + self.arrayItems =[arrayType(0)] * sizeOfArray # initialize array with zeroes |
| 11 | + |
| 12 | + def __str__(self): |
| 13 | + return ' '.join([str(i) for i in self.arrayItems]) |
| 14 | + |
| 15 | + def __len__(self): |
| 16 | + return len(self.arrayItems) |
| 17 | + |
| 18 | + # magic methods to enable indexing |
| 19 | + def __setitem__(self, index, data): |
| 20 | + self.arrayItems[index] = data |
| 21 | + |
| 22 | + def __getitem__(self, index): |
| 23 | + return self.arrayItems[index] |
| 24 | + |
| 25 | + # function for search |
| 26 | + def search(self, keyToSearch): |
| 27 | + for i in range(self.sizeOfArray): |
| 28 | + if (self.arrayItems[i] == keyToSearch): # brute-forcing |
| 29 | + return i # index at which element/ key was found |
| 30 | + |
| 31 | + return -1 # if key not found, return -1 |
| 32 | + |
| 33 | + # function for inserting an element |
| 34 | + def insert(self, keyToInsert, position): |
| 35 | + if(self.sizeOfArray > position): |
| 36 | + for i in range(self.sizeOfArray - 2, position - 1, -1): |
| 37 | + self.arrayItems[i + 1] = self.arrayItems[i] |
| 38 | + self.arrayItems[position] = keyToInsert |
| 39 | + else: |
| 40 | + print('Array size is:', self.sizeOfArray) |
| 41 | + |
| 42 | + # function to delete an element |
| 43 | + def delete(self, keyToDelete, position): |
| 44 | + if(self.sizeOfArray > position): |
| 45 | + for i in range(position, self.sizeOfArray - 1): |
| 46 | + self.arrayItems[i] = self.arrayItems[i + 1] |
| 47 | + else: |
| 48 | + print('Array size is:', self.sizeOfArray) |
| 49 | + |
| 50 | +if __name__ == '__main__': |
| 51 | + a = Array(10, int) |
| 52 | + a.insert(2, 2) |
| 53 | + a.insert(3, 1) |
| 54 | + a.insert(4,7) |
| 55 | + print(len(a)) |
0 commit comments