class DlinkedList

Clase DlinkedList almacena los datos en una lista

Attributes

head[R]
tail[R]

Public Class Methods

new() click to toggle source
# File lib/DlinkedList.rb, line 17
def initialize()
    
    @head = @tail = nil
    
end

Public Instance Methods

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

Recorre la lista desde la cabeza hasta a cola

Parameters:

No recibe nada

Returns:

No retorna nada

# File lib/DlinkedList.rb, line 163
def each
   
    nodo = @head
    while nodo != nil
   
        yield nodo.value
        nodo = nodo.next
        
    end
    
end
insertHead(value) click to toggle source

Inserta por la cabeza de la lista un nodo

Parameters:

Recive un valor o dato que se quiera insertar

Returns:

No retorna nada

# File lib/DlinkedList.rb, line 56
def insertHead(value)
    
    n = Node.new(value)
    
    if @head.nil?
        
        @head = n
        @tail = @head
        
    else
        
        @head.next = n
        n.prev = @head
        @head = n
        
    end
    
end
insertTail(value) click to toggle source

Inserta por la cola de la lista un nodo

Parameters:

Recive un valor o dato que se quiera insertar

Returns:

No retorna nada

# File lib/DlinkedList.rb, line 30
def insertTail(value)
    
    n = Node.new(value)
    
    if @head.nil?
        
        @tail = n
        @head = @tail
        
    else
        
        @tail.next = n
        n.prev = @tail
        @tail = n
        
    end
    
end
ordenarEach() click to toggle source
# File lib/DlinkedList.rb, line 210
def ordenarEach  
arrayOrd = []
    each do |nodo|
        if arrayOrd.empty?
            arrayOrd.push(nodo)
        else
            indice = 0
            while indice < arrayOrd.length
                if nodo <= arrayOrd[indice]
                    arrayOrd.insert(indice, nodo)
                    break
                elsif indice == arrayOrd.length-1
                    arrayOrd.insert(indice+1, nodo)
                    break
                end
                indice+=1
            end
        end
    end
    return arrayOrd
end
ordenarFor() click to toggle source
# File lib/DlinkedList.rb, line 188
def ordenarFor
   arrayOrd = []
       for nodo in self
           if arrayOrd.empty?
               arrayOrd.push(nodo)
           else
               indice = 0
               while indice < arrayOrd.length
                   if nodo <= arrayOrd[indice]
                       arrayOrd.insert(indice, nodo)
                       break
                   elsif indice == arrayOrd.length-1
                       arrayOrd.insert(indice+1, nodo)
                       break
                   end
                   indice+=1
               end
           end
       end
       return arrayOrd
   end
popHead() click to toggle source

Extrae por la cabeza de la lista un nodo

Parameters:

No recibe nada

Returns:

Retorna el nodo extraido

# File lib/DlinkedList.rb, line 82
def popHead
    
    unless @head.nil?
        
        aux = @head
        unless @head.next.nil?
        
            @head.next.prev = nil
            @head = @head.next
            
        else
            
            @head = nil
            @tail = nil
            
        end
        aux
        
    end
    
end
popTail() click to toggle source

Extrae por la cola de la lista un nodo

Parameters:

No recibe nada

Returns:

Retorna el nodo extraido

# File lib/DlinkedList.rb, line 111
def popTail
    
    unless @tail.nil?
        
        aux = @tail
        unless @tail.prev.nil?
        
            @tail.prev.next = nil
            @tail = @tail.prev
            
        else
            
            @head = nil
            @tail = nil
            
        end
        aux
        
    end
    
end
removeAll() click to toggle source

Extrae por la cabeza de la lista todos los nodos que quedan en la lista si no esta vacia

Parameters:

No recibe nada

Returns:

Retorna los nodos extraidos

# File lib/DlinkedList.rb, line 140
def removeAll
    
    unless @head.nil?
    
        while @head != nil
            
            aux = @head.next
            self.popHead
            @head = aux
            aux
        end
    
    end
    
end
to_s() click to toggle source

Define el metodo para imprimir por pantalla

Parameters:

No recibe ninguno

Returns:

Un string con el contenido de las variables

# File lib/DlinkedList.rb, line 182
def to_s
    
   each {|x| puts x}
   
end