Class: Alimento::Lista
- Inherits:
-
Object
- Object
- Alimento::Lista
- Includes:
- Enumerable
- Defined in:
- lib/alimento/lista.rb
Overview
Clase que representa a una lista doblemente enlazada Se ha incluido el mixin Enumerable
Instance Method Summary collapse
-
#each ⇒ Object
Se incluye el método del mixin Enumerable Se define como una iteración sobre los valores de cada nodod de la lista.
-
#head ⇒ Object
Getter/Setter de @head.
-
#head_out ⇒ Object
Método que extrae/elimina el primer valor de la lista.
-
#initialize(head, tail) ⇒ Lista
constructor
Se asignan la cabeza (@head) y la cola (@tail) y se enlazan.
-
#insert(nodo) ⇒ Object
Método que inserta un nodo en la cabeza de la lista.
-
#tail ⇒ Object
Getter/Setter de @tail.
-
#tail_out ⇒ Object
Método que extrae/elimina el último valor de la lista.
Methods included from Enumerable
Constructor Details
#initialize(head, tail) ⇒ Lista
Se asignan la cabeza (@head) y la cola (@tail) y se enlazan
12 13 14 15 16 17 18 |
# File 'lib/alimento/lista.rb', line 12 def initialize(head, tail) @head = head @tail = tail @head.siguiente = @tail @tail.anterior = @head end |
Instance Method Details
#each ⇒ Object
Se incluye el método del mixin Enumerable Se define como una iteración sobre los valores de cada nodod de la lista
59 60 61 62 63 64 65 |
# File 'lib/alimento/lista.rb', line 59 def each tmp = @head while tmp != nil do yield tmp.valor tmp = tmp.siguiente end end |
#head ⇒ Object
Getter/Setter de @head
21 22 23 |
# File 'lib/alimento/lista.rb', line 21 def head @head end |
#head_out ⇒ Object
Método que extrae/elimina el primer valor de la lista
42 43 44 45 46 47 |
# File 'lib/alimento/lista.rb', line 42 def head_out aux = @head.siguiente @head.siguiente = nil @head = aux @head.anterior = nil end |
#insert(nodo) ⇒ Object
Método que inserta un nodo en la cabeza de la lista
31 32 33 34 35 36 37 38 39 |
# 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 ⇒ Object
Getter/Setter de @tail
26 27 28 |
# File 'lib/alimento/lista.rb', line 26 def tail @tail end |
#tail_out ⇒ Object
Método que extrae/elimina el último valor de la lista
50 51 52 53 54 55 |
# File 'lib/alimento/lista.rb', line 50 def tail_out aux = @tail.anterior @tail.anterior = nil @tail = aux @tail.siguiente = nil end |