class Lista

Attributes

final[R]
  • Atributos

inicio[R]
  • Atributos

Public Class Methods

new() click to toggle source
  • Construyendo el Objeto Lista de tipo “Clase”.

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

Public Instance Methods

each() { |value| ... } click to toggle source
  • Creando el método each para ejecutar pruebas del módulo Enumerable.

# File lib/menu/codigo_lista.rb, line 18
def each
    aux = @inicio
    while aux != nil do
        yield aux.value
        aux = aux.next
    end
end
empty() click to toggle source
  • Creando el método empty para ver si la Lista es vacía o no.

# File lib/menu/codigo_lista.rb, line 27
def empty()
    if (@inicio == nil)
        return true
    else
        return false
    end
end
extractfinal() click to toggle source
  • Creando el método extractfinal para extraer elementos en la Lista desde el final.

# File lib/menu/codigo_lista.rb, line 83
def extractfinal
    if (empty == true)
        return false
    else
        valor = @final.value
        @final = @final.prev
        
        if (@final == nil)
            @inicio = nil
        else
            @final.next = nil
        end
        return valor
    end
end
extractinicio() click to toggle source
  • Creando el método extractinicio para extraer elementos en la Lista desde el inicio.

# File lib/menu/codigo_lista.rb, line 71
def extractinicio
    if(empty == true)
        return false
    else
        aux = @inicio
        @inicio = @inicio.next
        aux.next = nil
        return aux.value
    end
end
insertfinal(elemento) click to toggle source
  • Creando el método insertfinal para insertar elementos en la Lista desde el final.

  • El elemento a insertar se pasa por parámetro a la función.

# File lib/menu/codigo_lista.rb, line 54
def insertfinal (elemento)
    nodo = Nodo.new(elemento, nil, nil)
    
    if (empty == true)
        @inicio = nodo
        @final = nodo
    else
        aux = @final
        @final = nodo
        @final.prev = aux
        aux.next = @final
        @final.next = nil
    end
    return true
end
insertinicio(elemento) click to toggle source
  • Creando el método insertinicio para insertar elementos en la Lista desde el inicio.

  • El elemento a insertar se pasa por parámetro a la función.

# File lib/menu/codigo_lista.rb, line 37
def insertinicio (elemento)
    nodo = Nodo.new(elemento, nil, nil)

    if(empty == true)
        @inicio = nodo
        @final = nodo
    else
        aux = @inicio
        @inicio = nodo
        @inicio.next = aux
        aux.prev = @inicio
    end
    return true
end