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