class Lista

Attributes

cabeza[R]
cola[R]
n_elementos[R]

Public Class Methods

new() click to toggle source
# File lib/refbiblio_alu0100505078/lista.rb, line 6
def initialize()
    @cabeza=Node.new(nil,nil,nil)
    @cola=Node.new(nil,nil,nil)
    @n_elementos=0 
    
end

Public Instance Methods

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

MÉTODO EACH PARA USO DEL ENUMERABLE(SE USA EL AUTOR EN ESTE CASO)

# File lib/refbiblio_alu0100505078/lista.rb, line 13
def each()
    aux=@cola
   
   while aux.next !=nil do
      yield aux.value.autor
     # aux=@cola.next
     aux=aux.next
    end
end
empty?() click to toggle source

Método que comprueba si la lista está vacía o no

# File lib/refbiblio_alu0100505078/lista.rb, line 56
def empty?
    if(@cabeza.value==nil)
        true
    else
        false
    end
end
extrae() click to toggle source

Método para extraer el primer elemento de la lista enlazada.

# File lib/refbiblio_alu0100505078/lista.rb, line 48
def extrae
    
    a_aux=@cola
    @cola=@cola.next
    @n_elementos=@n_elementos-1
    a_aux
end
inserta(item) click to toggle source

Método insertar por el comienzo de la lista enlazada

# File lib/refbiblio_alu0100505078/lista.rb, line 23
def inserta(item)
   
    item.each do |n|
     nodo=Node.new(nil)
     nodo.value=n
        if @cabeza.value==nil
            @cabeza=nodo
            @cola=nodo
            
        else
            a_cabeza=@cola
            
            while a_cabeza.next!=nil do
                
                a_cabeza=a_cabeza.next
                
            end
            a_cabeza.next=nodo
            @cabeza=a_cabeza.next
            @cabeza.before=a_cabeza
        end
        @n_elementos=@n_elementos+1
   end
end
mostrar() click to toggle source

Método para mostrar el contenido de la lista desde el principio hasta el final.

# File lib/refbiblio_alu0100505078/lista.rb, line 64
def mostrar
    aux_cabeza=@cabeza
    aux_cola=@cola
    
    #print "\n de cola hacia adelante:\n "
    print aux_cola.value
    while aux_cola.next!=nil do
        print "\n ->"
        aux_cola=aux_cola.next
        print aux_cola.value
    end
     print "\n=========================================================\n"
end