Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Код лаб / ArrayList

.py
Скачиваний:
0
Добавлен:
28.12.2024
Размер:
2.28 Кб
Скачать
from array import array
import ctypes



class ArrayList():
  def __init__(self):
    self.count = 0
    self.capacity = 16
    self.array = self.make_array(self.capacity)


  def size(self):
    return self.count
    
  def make_array(self, new_capacity):
    return (new_capacity * ctypes.py_object)() 

  def get(self, i):
      if i < 0 or i >= self.count:
        print('Index is out of range')
        return
      return self.array[i]
  
  def resize(self, new_capacity):
    new_array = self.make_array(new_capacity)
    for i in range(self.count):
        new_array[i] = self.array[i]
    self.array = new_array
    self.capacity = new_capacity

  def add(self, itm):
    if self.count == self.capacity:
        self.resize(2 * self.capacity)
    self.array[self.count] = itm
    self.count += 1

  def indexOf(self, element):
    for i in range(self.count):
      if element == self.array[i]:
        return i
    return -1
    
  def contains(self, element):
    if self.indexOf(element) != -1:
      return True
    else: 
      return False

  def isEmpty(self):
    if self.count == 0:
      return True
    else:
      return False

  def set(self, index, element):
    if index < 0 or index >= self.count:
      print('Index is out of range')
      return
    self.array[index] = element

  def remove_index(self, index):
    if self.count == 0:
      print("Array is empty")
      return

    if index < 0 or index >= self.count:
        print('Index is out of range')
        return

    if index==self.count-1:
      self.array[index] = 0
      self.count-=1
      return 
    for i in range(index, self.count-1):
      self.array[i]=self.array[i+1]  

    self.array[self.count-1] = 0
    self.count-=1
    
  def remove_element(self, element):
    index = self.indexOf(element)
    if index != -1:
      self.remove_index(index)
      
  def split(self, str):
    for i in range(len(str)):
      if str[i]==' ':
        continue
      else:
        self.add(str[i])
      
  def clear(self):
    del self.array
    self.count = 0

  def out(self):
    print('[', end=' ')
    for i in range(self.count):
      print(self.get(i), end= ' ')
    print(']')

  def split(self, str):
    str = str.split()
    for i in range(len(str)):
      self.add(str[i])

Соседние файлы в папке Код лаб