class ListaEnlazada

Clase ListaEnlazada

Representa la lista doblemente enlazada

Public Class Methods

new() click to toggle source
# File lib/menu/lista.rb, line 64
def initialize ()
    @cabeza = nil
    @cola = nil
end

Public Instance Methods

cabeza() click to toggle source
  • Devuelve el objeto Menú que se encuentra en la cabeza de la lista.

# File lib/menu/lista.rb, line 142
def cabeza
    if @cabeza != nil then 
        @cabeza.datos
    else
        @cabeza
    end
end
cola() click to toggle source
  • Devuelve el objeto Menú que se encuentra en la cola de la lista.

# File lib/menu/lista.rb, line 151
def cola
    if @cola != nil then
        @cola.datos
    else
        @cola
    end
end
each() { |datos| ... } click to toggle source
# File lib/menu/lista.rb, line 69
def each
    x = @cabeza
    while x != @cola
        yield x.datos
        x = x.siguiente
    end
    yield @cola.datos
end
extraerCabeza() click to toggle source
  • Borra el objeto de la cabeza de la Lista.

# File lib/menu/lista.rb, line 79
def extraerCabeza
    if @cabeza != nil then
        auxiliar = @cabeza
        if @cabeza.siguiente != nil then
            @cabeza = auxiliar.siguiente
            @cabeza.anterior = nil
            auxiliar.siguiente = nil
        else
            @cabeza = nil
            @cola = nil
        end
        auxiliar.datos
    else
        @cabeza
    end
end
extraerCola() click to toggle source
  • Borra el objeto que está en la cola de la Lista.

# File lib/menu/lista.rb, line 97
def extraerCola
    if @cola != nil then
        auxiliar = @cola
        if @cola.anterior != nil then
            @cola = auxiliar.anterior
            @cola.siguiente = nil
            auxiliar.anterior = nil
        else
            @cola = nil
            @cabeza = nil
        end
        auxiliar.datos
    else
        @cola
    end
    
end
insertarCabeza(datos) click to toggle source
  • Inserta el objeto o grupo de objetos en la cabeza de la Lista

# File lib/menu/lista.rb, line 116
def insertarCabeza (datos)
    insertado = false
    if datos.instance_of?Array
        datos.each{|x| addCabeza(x)}
        insertado = true
    else
        addCabeza(datos)
        insertado = true
    end
    insertado
end
insertarCola(datos) click to toggle source
  • Inserta el objeto o grupo de objetos en la cola de la Lista

# File lib/menu/lista.rb, line 129
def insertarCola (datos)
    insertado = false
    if datos.instance_of?Array
        datos.each{|x| addCola(x)}
        insertado = true
    else
        addCola(datos)
        insertado = true
    end
    insertado
end

Private Instance Methods

addCabeza(datos) click to toggle source
# File lib/menu/lista.rb, line 161
def addCabeza (datos)
    if @cabeza == nil then
        @cabeza = Node.new(datos,nil, nil)
        @cola = @cabeza
    else
        nodo_aux = @cabeza
        @cabeza = Node.new(datos, nodo_aux, nil)
        nodo_aux.anterior = @cabeza
    end
end
addCola(datos) click to toggle source
# File lib/menu/lista.rb, line 172
def addCola (datos)
    if @cabeza == nil then
        @cabeza = Node.new(datos,nil, nil)
        @cola = @cabeza
    else
        nodo_aux = @cola
        @cola = Node.new(datos, nil, nodo_aux)
        nodo_aux.siguiente = @cola
    end
end