class Lista
Clase Lista
doblemente enlazada
Attributes
final[R]
inicio[R]
Public Class Methods
new()
click to toggle source
Funcion para inicializar la lista vacia
# File lib/dietas/lista.rb, line 11 def initialize() @inicio=nil @final=nil end
Public Instance Methods
each() { |value| ... }
click to toggle source
Funcion sin la cual no funcionaria el Enumerable
# File lib/dietas/lista.rb, line 78 def each nodo = @inicio while(nodo != nil) yield nodo.value nodo = nodo.next end end
empty()
click to toggle source
Funcion para comprobar si la lista esta vacia
# File lib/dietas/lista.rb, line 17 def empty if (@inicio==nil) return true else return false end end
extraer_final()
click to toggle source
Funcion para extraer por el final un elemento de la lista
# File lib/dietas/lista.rb, line 67 def extraer_final if (empty) return false else aux = @final @final=@final.prev # @final.next = nil return aux.value end end
extraer_inicio()
click to toggle source
Funcion para extraer por el inicio un elemento de la lista
# File lib/dietas/lista.rb, line 56 def extraer_inicio if (empty) return false else aux = @inicio @inicio=@inicio.next # @inicio.prev=nil return aux.value end end
insertar_uno_final(value)
click to toggle source
Funcion para insertar un valor al final de la lista
# File lib/dietas/lista.rb, line 36 def insertar_uno_final(value) aux = Node.new(value,nil,@final) @final = aux if (empty) @inicio=aux end return @final.value end
insertar_uno_inicio(value)
click to toggle source
Funcion para insertar un valor al inicio de la lista
# File lib/dietas/lista.rb, line 25 def insertar_uno_inicio(value) aux = Node.new(value,@inicio, nil) @inicio=aux if (empty) @fin = aux end return @inicio.value end
insertar_varios(vector)
click to toggle source
Funcion para insertar varios valores al principio de la lista
# File lib/dietas/lista.rb, line 47 def insertar_varios(vector) aux = 0 for i in vector insertar_uno_inicio(i) aux = aux + 1 end return aux end