class Lista

Clase que representa una lista doblemente enlazada

Attributes

final[R]

Atributos

inicio[R]

Atributos

Public Class Methods

new() click to toggle source

Meodo initialize para la llamada del new

# File lib/menu/codigo_lista.rb, line 21
def initialize()
    @inicio = nil
    @final = nil
end

Public Instance Methods

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

Método each para que la clase sea enumerable

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

Método que compurba si la lista está vacía

# File lib/menu/codigo_lista.rb, line 27
def empty()
    if (@inicio == nil)
        vacio = true
    else
        vacio = false
    end

    vacio
end
extract_final() click to toggle source

Método que extrae un menú por el final

# File lib/menu/codigo_lista.rb, line 88
def extract_final
    if(empty)
        valor = false
    else
        valor = @final.value
        if (@final.prev == nil)
            @inicio = nil
            @final = nil
            else
                @final = @final.prev
                @final.next = nil
            end
    end

    valor
end
extract_inicio() click to toggle source

Método que extrae un menú por el inicio

# File lib/menu/codigo_lista.rb, line 54
def extract_inicio
    if(empty)
        valor = false
    else
        valor = @inicio.value
        if (@inicio.next == nil)
            @inicio = nil
            @final = nil
            else
                @inicio = @inicio.next
                @inicio.prev = nil
            end
    end

    valor
end
insert_final(valor) click to toggle source

Método que inserta un menú por el final

# File lib/menu/codigo_lista.rb, line 72
def insert_final (valor)
    aux_nodo = Nodo.new(valor, nil, nil)

    if(empty)
        @final = aux_nodo
        @inicio = aux_nodo
    else
        aux_nodo.prev = @final
        @final.next = aux_nodo
        @final = aux_nodo
    end

    true
end
insert_inicio(valor) click to toggle source

Método que inserta un menú por el inicio

# File lib/menu/codigo_lista.rb, line 38
def insert_inicio (valor)
    aux_nodo = Nodo.new(valor, nil, nil)

    if(empty)
        @final = aux_nodo
        @inicio = aux_nodo
    else
        aux_nodo.next = @inicio
        @inicio.prev = aux_nodo
        @inicio = aux_nodo
    end

    true
end