def removeLast (lst): """ Remueve el último elemento de la lista. Elimina el último elemento de la lista y lo retorna en caso de existir. El tamaño de la lista se decrementa en 1. Si la lista es vacía retorna None. Args: lst: La lista a examinar Raises: Exception """ try: element = lst['elements'].pop(lst['size']-1) lst['size'] -= 1 return element except Exception as exp: error.reraise (exp, 'arraylist->remoLast: ')
def exchange(lst, pos1, pos2): """ Intercambia la informacion en las posiciones pos1 y pos2 de la lista. Args: lst: La lista a examinar pos1: Posición del primer elemento pos2: Posiocion del segundo elemento Raises: Exception """ try: if (lst['type'] == 'ARRAY_LIST'): alt.exchange(lst, pos1, pos2) else: slt.exchange(lst, pos1, pos2) except Exception as exp: error.reraise(exp, 'List->exchange: ')
def addLast(lst, element): """ Agrega un elemento en la última posición de la lista. Se adiciona un elemento en la última posición de la lista y se actualiza el apuntador a la útima posición. Se incrementa el tamaño de la lista en 1 Args: lst: La lista en la que se inserta el elemento element: El elemento a insertar Raises: Exception """ try: lst['elements'].append (element) lst['size'] += 1 except Exception as exp: error.reraise (exp, 'arraylist->addLast: ')
def newList(datastructure='ARRAY_LIST', cmpfunction=None): """Crea una lista vacia. Args: cmpfunction: Función de comparación para los elementos de la lista Returns: Una nueva lista Raises: Exception """ try: if (datastructure == "ARRAY_LIST"): lt = alt.newList(cmpfunction) else: lt = slt.newList(cmpfunction) return lt except Exception as exp: error.reraise(exp, 'list->newList: ')
def removeFirst (lst): """ Remueve el primer elemento de la lista. Elimina y retorna el primer elemento de la lista. El tamaño de la lista se decrementa en uno. Si la lista es vacía se retorna None. Args: lst: La lista a examinar Raises: Exception """ try: element = lst['elements'].pop(0) lst['size'] -= 1 return element except Exception as exp: error.reraise (exp, 'arraylist->removeFirst: ')
def changeInfo(lst, pos, element): """ Cambia la informacion contenida en el nodo de la lista que se encuentra en la posicion pos. Args: lst: La lista a examinar pos: la posición de la lista con la información a cambiar newinfo: La nueva información que se debe poner en el nodo de la posición pos Raises: Exception """ try: if (lst['type'] == 'ARRAY_LIST'): alt.changeInfo(lst, pos, element) else: slt.changeInfo(lst, pos, element) except Exception as exp: error.reraise(exp, 'List->changeInfo: ')
def subList (lst, pos, numelem): """ Retorna una sublista de la lista lst. Se retorna una lista que contiene los elementos a partir de la posicion pos, con una longitud de numelem elementos. Se crea una copia de dichos elementos y se retorna una lista nueva. Args: lst: La lista a examinar pos: Posición a partir de la que se desea obtener la sublista numelem: Numero de elementos a copiar en la sublista Raises: Exception """ try: return lt.subList (lst, pos, numelem) except Exception as exp: error.reraise (exp, 'List->subList: ')
def deleteElement (lst, pos): """ Elimina el elemento en la posición pos de la lista. Elimina el elemento que se encuentra en la posición pos de la lista. Pos debe ser mayor que cero y menor o igual al tamaño de la lista. Se decrementa en un uno el tamñao de la lista. La lista no puede estar vacia. Args: lst: La lista a retoranr pos: Posición del elemento a eliminar. Raises: Exception """ try: lst['elements'].pop(pos-1) lst['size'] -= 1 except Exception as exp: error.reraise (exp, 'arraylist->deleteElement: ')
def removeLast (lst): """ Remueve el último elemento de la lista. Elimina el último elemento de la lista y lo retorna en caso de existir. El tamaño de la lista se decrementa en 1. Si la lista es vacía retorna None. Args: lst: La lista a examinar Returns: El ultimo elemento de la lista Raises: Exception """ try: return lt.removeLast (lst) except Exception as exp: error.reraise (exp, 'TADList->removeLast: ')
def removeFirst (lst): """ Remueve el primer elemento de la lista. Elimina y retorna el primer elemento de la lista. El tamaño de la lista se decrementa en uno. Si la lista es vacía se retorna None. Args: lst: La lista a examinar Returns: El primer elemento de la lista Raises: Exception """ try: return lt.removeFirst (lst) except Exception as exp: error.reraise (exp, 'TADList->removeFirst: ')
def push(stack, element): """ Agrega el elemento element en el tope de la pila. Args: stack: La pila donde se insetará el elemento element: El elemento a insertar Returns: La pila modificada Raises: Exception """ try: lt.addFirst(stack, element) return stack except Exception as exp: error.reraise(exp, 'TADStack->Push: ')
def insertElement (lst, element, pos): """ Inserta el elemento element en la posición pos de la lista. Inserta el elemento en la posición pos de la lista. La lista puede ser vacía. Se incrementa en 1 el tamaño de la lista. Args: lst: La lista en la que se va a insertar el elemento element: El elemento a insertar pos: posición en la que se va a insertar el elemento, 0 < pos <= size(lst) Raises: Exception """ try: lst['elements'].insert (pos-1,element) lst['size'] += 1 except Exception as exp: error.reraise (exp, 'arraylist->insertElement: ')
def exchange (lst, pos1, pos2): """ Intercambia la informacion en las posiciones pos1 y pos2 de la lista. Args: lst: La lista a examinar pos1: Posición del primer elemento pos2: Posiocion del segundo elemento Raises: Exception """ try: infopos1 = getElement (lst, pos1) infopos2 = getElement (lst, pos2) changeInfo (lst, pos1, infopos2) changeInfo (lst, pos2, infopos1) return lst except Exception as exp: error.reraise (exp, 'arraylist->exchange: ')
def isPresent(lst, element): """ Informa si el elemento element esta presente en la lista. Informa si un elemento está en la lista. Si esta presente, retorna la posición en la que se encuentra o cero (0) si no esta presente. Se utiliza la función de comparación utilizada durante la creación de la lista para comparar los elementos. Args: lst: La lista a examinar element: El elemento a buscar Returns: Raises: Exception """ try: return lt.isPresent(lst, element) except Exception as exp: error.reraise(exp, 'TADList->isPresent: ')
def removeFirst(lst): """ Remueve el primer elemento de la lista. Elimina y retorna el primer elemento de la lista. El tamaño de la lista se decrementa en uno. Si la lista es vacía se retorna None. Args: lst: La lista a examinar Raises: Exception """ try: if (lst['type'] == 'ARRAY_LIST'): return alt.removeFirst(lst) else: return slt.removeFirst(lst) except Exception as exp: error.reraise(exp, 'List->removeFirst: ')
def removeLast(lst): """ Remueve el último elemento de la lista. Elimina el último elemento de la lista y lo retorna en caso de existir. El tamaño de la lista se decrementa en 1. Si la lista es vacía retorna None. Args: lst: La lista a examinar Raises: Exception """ try: if (lst['type'] == 'ARRAY_LIST'): return alt.removeLast(lst) else: return slt.removeLast(lst) except Exception as exp: error.reraise(exp, 'List->removeLast: ')
def addLast(lst, element): """ Agrega un elemento en la última posición de la lista. Se adiciona un elemento en la última posición de la lista y se actualiza el apuntador a la útima posición. Se incrementa el tamaño de la lista en 1 Args: lst: La lista en la que se inserta el elemento element: El elemento a insertar Raises: Exception """ try: if (lst['type'] == 'ARRAY_LIST'): alt.addLast(lst, element) else: slt.addLast(lst, element) except Exception as exp: error.reraise(exp, 'List->addLast: ')
def insertElement(lst, element, pos): """ Inserta el elemento element en la posición pos de la lista. Inserta el elemento en la posición pos de la lista. La lista puede ser vacía. Se incrementa en 1 el tamaño de la lista. Args: lst: La lista en la que se va a insertar el elemento element: El elemento a insertar pos: posición en la que se va a insertar el elemento, 0 < pos <= size(lst) Raises: Exception """ try: if (lst['type'] == 'ARRAY_LIST'): alt.insertElement(lst, element, pos) else: slt.insertElement(lst, element, pos) except Exception as exp: error.reraise(exp, 'List->insertElement: ')
def deleteElement(lst, pos): """ Elimina el elemento en la posición pos de la lista. Elimina el elemento que se encuentra en la posición pos de la lista. Pos debe ser mayor que cero y menor o igual al tamaño de la lista. Se decrementa en un uno el tamñao de la lista. La lista no puede estar vacia. Args: lst: La lista a retoranr pos: Posición del elemento a eliminar. Raises: Exception """ try: if (lst['type'] == 'ARRAY_LIST'): alt.deleteElement(lst, pos) else: slt.deleteElement(lst, pos) except Exception as exp: error.reraise(exp, 'List->deleteElement: ')
def getElement(lst, pos): """ Retorna el elemento en la posición pos de la lista. Se recorre la lista hasta el elemento pos, el cual debe ser mayor que cero y menor o igual al tamaño de la lista. Se retorna el elemento en dicha posición sin eleminarlo. La lista no puede ser vacia. Args: lst: La lista a examinar pos: Posición del elemento a retornar Raises: Exception """ try: if (lst['type'] == 'ARRAY_LIST'): return alt.getElement(lst, pos) else: return slt.getElement(lst, pos) except Exception as exp: error.reraise(exp, 'List->getElement: ')
def addFirst(lst, element): """Agrega un elemento a la lista en la primera posicion. Agrega un elemento en la primera posición de la lista, se incrementa el tamaño de la lista en uno. Args: lst: La lista don de inserta el elemento element: El elemento a insertar en la lista Returns: La lista con el nuevo elemento en la primera posición, si el proceso fue exitoso Raises: Exception """ try: lt.addFirst(lst, element) except Exception as exp: error.reraise(exp, 'TADList->addFirst: ')
def changeInfo(lst, pos, newinfo): """ Cambia la informacion contenida en el nodo de la lista que se encuentra en la posicion pos. Args: lst: La lista a examinar pos: la posición de la lista con la información a cambiar newinfo: La nueva información que se debe poner en el nodo de la posición pos Raises: Exception """ try: current = lst['first'] cont = 1 while cont < pos: current = current['next'] cont += 1 current['info'] = newinfo return lst except Exception as exp: error.reraise(exp, 'singlelinkedlist->changeInfo: ')
def getElement(lst, pos): """ Retorna el elemento en la posición pos de la lista. Se recorre la lista hasta el elemento pos, el cual debe ser mayor que cero y menor o igual al tamaño de la lista. Se retorna el elemento en dicha posición sin eleminarlo. La lista no puede ser vacia. Args: lst: La lista a examinar pos: Posición del elemento a retornar Raises: Exception """ try: searchpos = 1 node = lst['first'] while searchpos < pos: searchpos += 1 node = node['next'] return node['info'] except Exception as exp: error.reraise(exp, 'singlelinkedlist->getElement: ')
def newIterator(lst): try: return it.newIterator(lst) except Exception as exp: error.reraise(exp, 'List->newIterator: ')
def next(iterator): try: return it.next(iterator) except Exception as exp: error.reraise(exp, 'List->next: ')