Class: Lista
Overview
Esta clase representa una lista doblemente enlazada
Instance Attribute Summary collapse
-
#head ⇒ Object
readonly
Esto permite la lectura de la cola y la cabeza de la lista.
-
#tail ⇒ Object
readonly
Esto permite la lectura de la cola y la cabeza de la lista.
Instance Method Summary collapse
-
#each ⇒ Object
Metodo each para que la clase sea enumerable.
-
#extraer_cola ⇒ Object
Retorna el ultimo nodo de la lista.
-
#extraer_head ⇒ Object
Retorna el primer nodo de la lista.
-
#initialize(val) ⇒ Lista
constructor
A new instance of Lista.
- #insertar_nodo_cola(val) ⇒ Object
- #insertar_nodo_head(val) ⇒ Object
-
#to_s ⇒ Object
Convierte a un string formateado la lista doblemente enlazada.
Constructor Details
Instance Attribute Details
#head ⇒ Object (readonly)
Esto permite la lectura de la cola y la cabeza de la lista
9 10 11 |
# File 'lib/nutrientes/lista.rb', line 9 def head @head end |
#tail ⇒ Object (readonly)
Esto permite la lectura de la cola y la cabeza de la lista
9 10 11 |
# File 'lib/nutrientes/lista.rb', line 9 def tail @tail end |
Instance Method Details
#each ⇒ Object
Metodo each para que la clase sea enumerable
67 68 69 70 71 72 73 |
# File 'lib/nutrientes/lista.rb', line 67 def each actual = @head while actual != nil do yield actual.value actual = actual.next_ end end |
#extraer_cola ⇒ Object
Returns retorna el ultimo nodo de la lista
47 48 49 50 51 52 |
# File 'lib/nutrientes/lista.rb', line 47 def extraer_cola dummy = @tail.value @tail = @tail.prev @tail.next_ = nil return dummy end |
#extraer_head ⇒ Object
Returns retorna el primer nodo de la lista
37 38 39 40 41 42 |
# File 'lib/nutrientes/lista.rb', line 37 def extraer_head dummy = @head.value @head = @head.next_ @head.prev = nil return dummy end |
#insertar_nodo_cola(val) ⇒ Object
19 20 21 22 23 |
# File 'lib/nutrientes/lista.rb', line 19 def insertar_nodo_cola(val) aux = Node.new(val,nil,@tail) @tail.next_ = aux @tail = aux end |
#insertar_nodo_head(val) ⇒ Object
28 29 30 31 32 |
# File 'lib/nutrientes/lista.rb', line 28 def insertar_nodo_head(val) aux = Node.new(val,@head,nil) @head.prev = aux @head = aux end |
#to_s ⇒ Object
Convierte a un string formateado la lista doblemente enlazada
55 56 57 58 59 60 61 62 63 64 |
# File 'lib/nutrientes/lista.rb', line 55 def to_s string = "(" dummy = @head while (dummy != nil) do string += "#{dummy.value.to_s}," dummy = dummy.next_ end string += ")" return string end |