Example #1
0
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: ')
Example #2
0
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: ')
Example #3
0
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: ')
Example #5
0
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: ')
Example #6
0
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: ')
Example #7
0
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: ')
Example #8
0
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: ')
Example #9
0
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: ')
Example #10
0
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: ')
Example #11
0
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: ')
Example #12
0
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: ')
Example #13
0
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: ')
Example #14
0
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: ')
Example #15
0
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: ')
Example #16
0
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: ')
Example #18
0
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: ')
Example #19
0
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: ')
Example #20
0
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: ')
Example #21
0
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: ')
Example #22
0
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: ')
Example #23
0
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: ')