class Alimento::Lista
Esta clase es la definición de una lista doblemente enlazada.
Attributes
head[R]
tail[R]
Public Class Methods
new()
click to toggle source
Inicia la lista (vacía).
# File lib/alimento/lista.rb, line 13 def initialize @head = nil @tail = nil end
Public Instance Methods
each() { |valor| ... }
click to toggle source
Se incluye el metodo del mixin Enumerable. Iteración sobre los elementos de la lista desde el principio hasta el final.
# File lib/alimento/lista.rb, line 60 def each iterador = @head while iterador != nil yield iterador.valor iterador = iterador.siguiente end end
extraer_head()
click to toggle source
Elimina el primer elemento de la lista.
# File lib/alimento/lista.rb, line 49 def extraer_head @head = @head.siguiente end
extraer_tail()
click to toggle source
Elimina el último elemento de la lista.
# File lib/alimento/lista.rb, line 54 def extraer_tail @tail = @tail.anterior end
insertar_head(valor)
click to toggle source
Permite insertar un valor en la lista por delante.
# File lib/alimento/lista.rb, line 19 def insertar_head(valor) nodo = Nodo.new(valor,nil,nil) if (@head == nil) @head = nodo @tail = nodo else @head.anterior = nodo nodo.siguiente = @head @head = nodo end end
insertar_tail(valor)
click to toggle source
Permite insertar un valor en la lista por detrás.
# File lib/alimento/lista.rb, line 34 def insertar_tail(valor) nodo = Nodo.new(valor,nil,nil) if (@tail == nil) @tail = nodo @head = nodo else @tail.siguiente = nodo nodo.anterior = @tail @tail = nodo end end