class Lista
Clase que representa una lista doblemente enlazada
Attributes
final[R]
Atributos
inicio[R]
Atributos
Public Class Methods
new()
click to toggle source
Meodo initialize para la llamada del new
# File lib/menu/codigo_lista.rb, line 21 def initialize() @inicio = nil @final = nil end
Public Instance Methods
each() { |value| ... }
click to toggle source
Método each para que la clase sea enumerable
# File lib/menu/codigo_lista.rb, line 12 def each nodo = @inicio while (nodo != nil) yield nodo.value nodo = nodo.next end end
empty()
click to toggle source
Método que compurba si la lista está vacía
# File lib/menu/codigo_lista.rb, line 27 def empty() if (@inicio == nil) vacio = true else vacio = false end vacio end
extract_final()
click to toggle source
Método que extrae un menú por el final
# File lib/menu/codigo_lista.rb, line 88 def extract_final if(empty) valor = false else valor = @final.value if (@final.prev == nil) @inicio = nil @final = nil else @final = @final.prev @final.next = nil end end valor end
extract_inicio()
click to toggle source
Método que extrae un menú por el inicio
# File lib/menu/codigo_lista.rb, line 54 def extract_inicio if(empty) valor = false else valor = @inicio.value if (@inicio.next == nil) @inicio = nil @final = nil else @inicio = @inicio.next @inicio.prev = nil end end valor end
insert_final(valor)
click to toggle source
Método que inserta un menú por el final
# File lib/menu/codigo_lista.rb, line 72 def insert_final (valor) aux_nodo = Nodo.new(valor, nil, nil) if(empty) @final = aux_nodo @inicio = aux_nodo else aux_nodo.prev = @final @final.next = aux_nodo @final = aux_nodo end true end
insert_inicio(valor)
click to toggle source
Método que inserta un menú por el inicio
# File lib/menu/codigo_lista.rb, line 38 def insert_inicio (valor) aux_nodo = Nodo.new(valor, nil, nil) if(empty) @final = aux_nodo @inicio = aux_nodo else aux_nodo.next = @inicio @inicio.prev = aux_nodo @inicio = aux_nodo end true end