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