class Lista

Clase Lista doblemente enlazada

Attributes

final[R]
inicio[R]

Public Class Methods

new() click to toggle source

Funcion para inicializar la lista vacia

# File lib/dietas/lista.rb, line 11
def initialize()
    @inicio=nil
    @final=nil
    
end

Public Instance Methods

each() { |value| ... } click to toggle source

Funcion sin la cual no funcionaria el Enumerable

# File lib/dietas/lista.rb, line 78
def each
    nodo = @inicio
    while(nodo != nil)
            yield nodo.value
            nodo = nodo.next
    end
end
empty() click to toggle source

Funcion para comprobar si la lista esta vacia

# File lib/dietas/lista.rb, line 17
def empty
    if (@inicio==nil)
        return true
    else
        return false
    end
end
extraer_final() click to toggle source

Funcion para extraer por el final un elemento de la lista

# File lib/dietas/lista.rb, line 67
def extraer_final
    if (empty)
        return false
    else
        aux = @final
        @final=@final.prev
        # @final.next = nil
        return aux.value      
    end
end
extraer_inicio() click to toggle source

Funcion para extraer por el inicio un elemento de la lista

# File lib/dietas/lista.rb, line 56
def extraer_inicio
    if (empty)
        return false
    else
        aux = @inicio
        @inicio=@inicio.next
        # @inicio.prev=nil
        return aux.value      
    end
end
insertar_uno_final(value) click to toggle source

Funcion para insertar un valor al final de la lista

# File lib/dietas/lista.rb, line 36
def insertar_uno_final(value)
    
    aux = Node.new(value,nil,@final)
    @final = aux
    if (empty)
        @inicio=aux
    end
    
    return @final.value
end
insertar_uno_inicio(value) click to toggle source

Funcion para insertar un valor al inicio de la lista

# File lib/dietas/lista.rb, line 25
def insertar_uno_inicio(value)
    aux = Node.new(value,@inicio, nil)
    @inicio=aux
    if (empty)
        @fin = aux
    end

    return @inicio.value
   
end
insertar_varios(vector) click to toggle source

Funcion para insertar varios valores al principio de la lista

# File lib/dietas/lista.rb, line 47
def insertar_varios(vector)
    aux = 0
    for i in vector
        insertar_uno_inicio(i)
        aux = aux + 1
    end
    return aux
end