class List::List

Attributes

fin[RW]
ini[RW]

Public Class Methods

new(valor) click to toggle source
# File lib/bibliografia/list.rb, line 11
def initialize(valor)
    nodo = Node.new(valor,nil,nil)
    @ini = nodo
    @fin = nodo
end

Public Instance Methods

borrar() click to toggle source
# File lib/bibliografia/list.rb, line 55
def borrar()
    while @ini!=nil do
        dummy=@ini
        @ini = @ini.next
        dummy=nil
        if(@ini==nil)
            @fin=nil
        end
    end
end
each() { |nil| ... } click to toggle source
# File lib/bibliografia/list.rb, line 103
def each
    
    dummy = @ini
    
    if(@ini==nil and @fin==nil)
        
        yield nil
        
    elsif (@ini==@fin)
    
        yield @ini.value
    
    else
        
        while(dummy != nil)
        
            yield dummy.value
            dummy = dummy.next
            
        end
    end
    
end
extraer_ini() click to toggle source
# File lib/bibliografia/list.rb, line 17
def extraer_ini()
    if (@ini != nil)
        
        dummy = @ini
        if(@ini==@fin)
            @fin=@fin.next
        end
        @ini = @ini.next
        return dummy
    else
        return nil
    end
end
insertar_elemento(valor) click to toggle source
# File lib/bibliografia/list.rb, line 31
def insertar_elemento(valor)
    nodo = Node.new(valor,nil,nil)
    if (@ini == nil)
        @ini = nodo
        @fin = nodo
    elsif (@ini==@fin)
            @ini=nodo
            @ini.next = @fin
            @fin.prev = @ini
    else
        aux = @ini
        @ini = nodo
        @ini.next = aux
        aux.prev = @ini
    end
     
end
insertar_varios(vector) click to toggle source
# File lib/bibliografia/list.rb, line 49
def insertar_varios(vector)
    vector.each do |i|
        insertar_elemento(i)
    end
end
ordenar() click to toggle source
# File lib/bibliografia/list.rb, line 127
def ordenar()
    
    auxfin = @fin
    
    while (auxfin!=@ini)
    
        aux = @ini
        
        while (aux!=auxfin)
            
            if (aux.value>aux.next.value)
                dummy = aux.value
                aux.value = aux.next.value
                aux.next.value = dummy
            end
            
            aux = aux.next
            
        end
        
        auxfin = auxfin.prev
    
    end
    
end
recorrer_final() click to toggle source
# File lib/bibliografia/list.rb, line 89
def recorrer_final
    vector = []
    aux = @fin
    i = 0
    
    while aux!=nil do
        vector[i]=aux.value
        aux=aux.prev
        i=i+1
    end
    
    return vector
end
recorrer_inicio() click to toggle source
# File lib/bibliografia/list.rb, line 75
def recorrer_inicio
    vector = []
    aux = @ini
    i = 0
    
    while aux!=nil do
        vector[i]=aux.value
        aux=aux.next
        i=i+1
    end
    
    return vector
end
vacia() click to toggle source
# File lib/bibliografia/list.rb, line 66
def vacia()
   
   if(@ini == nil)
       return true
   else
       return false
   end
end