class Bibliografia::Lista_enlazada

Clase Lista enlazada por ambos lados

Attributes

final[R]

Getter + Setter

principio[R]

Getter + Setter

Public Class Methods

new() click to toggle source

Constructor

# File lib/bibliografia/lista_enlazada.rb, line 20
def initialize
    @principio = nil
    @final = nil
end

Public Instance Methods

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

Para hacer la clase enumerable

# File lib/bibliografia/lista_enlazada.rb, line 79
def each
    nodo  = @principio
    while (nodo != nil)
        yield nodo.referencia
        nodo = nodo.siguiente
    end
end
extraer_lista_final() click to toggle source

Extraer nodo de la lista por el final

# File lib/bibliografia/lista_enlazada.rb, line 67
def extraer_lista_final
    ref = @final
    @final = ref.anterior
    if @final != nil
        @final.siguiente = nil
    else
        @principio = @final
    end
    ref
end
extraer_lista_principio() click to toggle source

Extraer nodo de la lista por el principio

# File lib/bibliografia/lista_enlazada.rb, line 43
def extraer_lista_principio
    ref = @principio
    @principio = ref.siguiente
    if @principio != nil
        @principio.anterior = nil
    else
        @final = @principio
    end
    ref
end
insertar_lista_final(referencia) click to toggle source

Insertar nodo en la lista por el final

# File lib/bibliografia/lista_enlazada.rb, line 55
def insertar_lista_final(referencia)
    if @final != nil
        @final = Nodo.new(referencia, nil, @final)
        n = @final.anterior
        n.siguiente = @final
    else
        @principio = Nodo.new(referencia, nil, nil)
        @final = @principio
    end
end
insertar_lista_principio(referencia) click to toggle source

Insertar nodo en la lista por el principio

# File lib/bibliografia/lista_enlazada.rb, line 26
def insertar_lista_principio(referencia)
    if @principio != nil && @principio.siguiente != nil
        n = @principio
        @principio = Nodo.new(referencia, n, nil)
        n.anterior = @principio
    elsif @principio != nil
        n = @principio
        @principio = Nodo.new(referencia, n, nil)
        n.anterior = @principio
        @final = n
    else
        @principio = Nodo.new(referencia, nil, nil)
        @final = @principio
    end
end