class Alimento::Lista
Clase que representa a una lista doblemente enlazada Se ha incluido el mixin Enumerable
Public Class Methods
new(head, tail)
click to toggle source
Se asignan la cabeza (@head) y la cola (@tail) y se enlazan
# File lib/alimento/lista.rb, line 12 def initialize(head, tail) @head = head @tail = tail @head.siguiente = @tail @tail.anterior = @head end
Public Instance Methods
each() { |valor| ... }
click to toggle source
Se incluye el método del mixin Enumerable Se define como una iteración sobre los valores de cada nodod de la lista
# File lib/alimento/lista.rb, line 59 def each tmp = @head while tmp != nil do yield tmp.valor tmp = tmp.siguiente end end
head()
click to toggle source
Getter/Setter de @head
# File lib/alimento/lista.rb, line 21 def head @head end
head_out()
click to toggle source
Método que extrae/elimina el primer valor de la lista
# File lib/alimento/lista.rb, line 42 def head_out aux = @head.siguiente @head.siguiente = nil @head = aux @head.anterior = nil end
insert(nodo)
click to toggle source
Método que inserta un nodo en la cabeza de la lista
# File lib/alimento/lista.rb, line 31 def insert(nodo) if(nodo.is_a?Nodo) then aux = @head @head = nodo @head.anterior = nil @head.siguiente = aux aux.anterior = @head end end
tail()
click to toggle source
Getter/Setter de @tail
# File lib/alimento/lista.rb, line 26 def tail @tail end
tail_out()
click to toggle source
Método que extrae/elimina el último valor de la lista
# File lib/alimento/lista.rb, line 50 def tail_out aux = @tail.anterior @tail.anterior = nil @tail = aux @tail.siguiente = nil end