class ArrayList: #implements the ADT List (List.py) #uses the DynamicArray class (DynamicArray.py) def __init__( self ): self._A = DynamicArray() def __len__( self ): return len( self._A ) def __str__( self ): return str( self._A ) def __getitem__( self, k ): return self._A[k] #append at the end of the list def append( self, obj ): self._A.append( obj ) #remove the ith element of the list def remove( self, i ): if len( self._A ) == 0: return False else: self._A.remove( i ) return True #return the rank of obj in the list def find( self, obj ): return self._A.find( obj )
class ArrayStack: #implements the ADT Stack (Stack.py) #uses the DynamicArray class (DynamicArray.py) def __init__( self ): self._A = DynamicArray() def __len__( self ): return len( self._A ) def is_empty( self ): return len( self._A ) == 0 def __str__( self ): pp = str( self._A ) pp += "[top = " + str( len( self._A ) - 1 ) + ")" return pp #push obj def push( self, obj ): self._A.append( obj ) #pop def pop( self ): return self._A.remove( len( self._A ) ) #top def top( self ): return self._A.get( len( self._A ) )
class ArrayStack: #implements the ADT Stack (Stack.py) #uses the DynamicArray class (DynamicArray.py) def __init__(self): self._A = DynamicArray() def __len__(self): return len(self._A) def is_empty(self): return len(self._A) == 0 def __str__(self): pp = str(self._A) pp += "[top = " + str(len(self._A) - 1) + ")" return pp #push obj def push(self, obj): self._A.append(obj) #pop def pop(self): return self._A.remove(len(self._A)) #top def top(self): return self._A.get(len(self._A))
class ArrayList(List): # implémente l'ADT List (List.py) # utilise la classe DynamicArray (DynamicArray.py) def __init__(self): self._A = DynamicArray() # retourne le nombre d'éléments def __len__(self): return len(self._A) # retourne une chaîne de caractères représentant la liste def __str__(self): return str(self._A) # accès avec notation des crochets def __getitem__(self, k): return self._A[k] # ajoute l'élément obj à la fin de la liste def append(self, obj): self._A.append(obj) # retire le ième élément de la liste def remove(self, i): return self._A.remove(i) # retourne l'index de l'élément obj s'il existe def find(self, obj): return self._A.find(obj)
def test_pop_len(self): a = DynamicArray() a.append(2) a.append(1) a.append(4) a.append(6) a.pop() assert len(a) == 3
class ArrayStack(Stack): # implémente l'ADT Stack (Stack.py) # avec un tableau dynamique (DynamicArray.py) def __init__(self): self._A = DynamicArray() def __len__(self): return len(self._A) def is_empty(self): return len(self._A) == 0 def __str__(self): pp = str(self._A) if self.is_empty(): pp += "[empty stack]" else: obj = self.top() pp += "[top = " + str(obj) + ", idx = " + str(len(self._A) - 1) + "]" return pp # push implémenté avec append def push(self, obj): self._A.append(obj) # pop récupère l'erreur de DynamicArray def pop(self): try: return self._A.pop() except IndexError: return None # top implémenté avec get du dernier élément def top(self): return self._A.get(len(self._A) - 1)
__author__ = 'Stephen' from DynamicArray import DynamicArray from SortedList import SortedList import sys array = DynamicArray() array.append(198479874) for i in range(5000): array.append("1") size = sys.getsizeof(array) print "Size in bytes: " + str(size)
def test_append_indexing(self): arr = DynamicArray() arr.append(1) assert arr[0] == 1
def test_pop_i(self): a = DynamicArray() a.append(2) a.append(1) a.append(4) assert a.pop(1) == 1
def test_append_len(self): arr = DynamicArray() arr.append(1) arr.append(2) assert len(arr) == 2
from DynamicArray import DynamicArray arr = DynamicArray() for i in range(11): arr.append(i) for i in range(len(arr)): print(arr[i])
from DynamicArray import DynamicArray a = DynamicArray() a.append(5) a.append(10) a.append(15) print(a)