class Lista
Lista
doblemente enlazada para almacenar elementos.
Attributes
final[RW]
inicio[RW]
Public Class Methods
new()
click to toggle source
Contructor de la clase Lista
# File lib/menudietetico/menudietetico.rb, line 8 def initialize @inicio = nil @final = nil end
Public Instance Methods
each() { |value| ... }
click to toggle source
Recorre la lista para el uso del módulo enumerable
# File lib/menudietetico/menudietetico.rb, line 14 def each nodo_aux = @inicio while nodo_aux != nil yield nodo_aux.value nodo_aux = nodo_aux.next end end
extraer()
click to toggle source
Extrae el inicio de la lista
# File lib/menudietetico/menudietetico.rb, line 103 def extraer if(is_empty()) return nil elsif node_aux = @inicio @inicio = @inicio.next node_aux.next = nil node_aux.previo = nil return node_aux.value end end
extraer_final()
click to toggle source
Extrae un elemento del final de la lista
# File lib/menudietetico/menudietetico.rb, line 116 def extraer_final if(is_empty()) return nil elsif node_aux = @final @final = @final.previo if(@final!=nil) @final.next=nil elsif @inicio=nil end return node_aux.value end end
get_final()
click to toggle source
Devuelve el elemento final de la linea
# File lib/menudietetico/menudietetico.rb, line 28 def get_final return @final end
get_inicio()
click to toggle source
Devuelve el elemento inicial de la lista
# File lib/menudietetico/menudietetico.rb, line 23 def get_inicio return @inicio end
insertar(elemento)
click to toggle source
Inserta un elemento por el inicio de la lista
# File lib/menudietetico/menudietetico.rb, line 45 def insertar(elemento) #inserta por el inicio nodo_aux = Node.new(elemento, nil, nil) if(is_empty()) @inicio = nodo_aux @final = nodo_aux @inicio.next = nil @inicio.previo = nil #@final = @inicio elsif aux = @inicio @inicio = nodo_aux @inicio.next = aux @inicio.previo = nil aux.previo = @inicio end end
insertar_final(elemento)
click to toggle source
Inserta un elemento por el final de la lista
# File lib/menudietetico/menudietetico.rb, line 63 def insertar_final(elemento) nodo_aux = Node.new(elemento, nil, nil) if(is_empty()) @inicio = nodo_aux @final = nodo_aux @inicio.next = nil @inicio.previo = nil @final.previo = nil @final.next = nil #@final = @inicio elsif aux = @final @final = nodo_aux @final.previo = aux @final.next = nil end end
insertar_muchos(vector)
click to toggle source
Inserta varios elementos por el inicio de la lista
# File lib/menudietetico/menudietetico.rb, line 82 def insertar_muchos(vector) #inserta muchos por el inicio i=0 while i<vector.length self.insertar(vector[i]) i=i+1 end end
insertar_muchos_final(vector)
click to toggle source
Inserta varios elementos por el final de la lista Se le pasa como argumento un vector con los elementos a insertar en la lista
# File lib/menudietetico/menudietetico.rb, line 93 def insertar_muchos_final(vector) i=0 while i<vector.length self.insertar_final(vector[i]) i=i+1 end end
is_empty()
click to toggle source
Comprueba si la lista está vacía
# File lib/menudietetico/menudietetico.rb, line 33 def is_empty # @inicio == nil r = false if(@inicio == nil) r = true elsif r = false end return r end