class Listas

Inicializació de la clase lista

Attributes

cabeza[RW]
cola[RW]
nodo_actual[RW]

Public Class Methods

new(cabeza,cola) click to toggle source

Método initialize Inicializa los atributos de la clase

# File lib/prct6/listas.rb, line 13
def initialize(cabeza,cola)
    @cabeza = cabeza
        @cola = cola
end

Public Instance Methods

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

Método each Recorre la lista haciendo yield del valor

# File lib/prct6/listas.rb, line 84
def each
    while @cabeza != @cola
        yield @cabeza.value
        @cabeza=@cabeza.prev
    end

    if @cabeza == @cola
       if @cabeza == nil
        nil
       else
        yield @cola.value
       end
    end
end
extraer_final() click to toggle source

Método #extraer_final Extrae un valor por la cola

# File lib/prct6/listas.rb, line 74
def extraer_final()
   @cabeza = @cabeza.prev
end
extraer_inicio() click to toggle source

Método #extraer_inicio Extrae un valor por la cabeza

# File lib/prct6/listas.rb, line 68
def extraer_inicio()
   @cola=@cola.next
end
insertar_cabeza(x) click to toggle source

Método #insertar_cabeza Inserta un valor en la lista por la cabeza

# File lib/prct6/listas.rb, line 20
def insertar_cabeza(x)
    node = Nodo.new(x,nil,nil)

    if @cabeza==nil && @cola==nil
            node.prev = @cola
            node.next = @cabeza
            @nodo_actual = node
            @cabeza = node
            @cola = node
    else
            node.prev = @cabeza
            node.next = nil
            @nodo_actual = node
            @cabeza.next = node
            @cabeza = node
    end
end
insertar_cola(x) click to toggle source

Método #insertar_cola Inserta un valor en la lista por la cola

# File lib/prct6/listas.rb, line 40
def insertar_cola(x)
    node = Nodo.new(x,nil,nil)

    if @cabeza==nil && @cola==nil
            node.prev = @cabeza
            node.next = @cola
            @nodo_actual = node
            @cola = node
            @cabeza = node
    else
            node.prev = @cola
            node.next = nil
            @nodo_actual = node
            @cola.next = node
            @cola = node
    end
end
insertar_varios(nodos) click to toggle source

Método #insertar_varios Inserta multiples valores por la cabeza

# File lib/prct6/listas.rb, line 60
def insertar_varios(nodos)
    nodos.each do |nd|
            insertar_cabeza(nd)
    end
end
to_s() click to toggle source
# File lib/prct6/listas.rb, line 78
def to_s
     @cabeza.to_s 
end