Class: Lista
Overview
Clase Lista doblemente enlazada
Instance Attribute Summary collapse
-
#final ⇒ Object
readonly
Returns the value of attribute final.
-
#inicio ⇒ Object
readonly
Returns the value of attribute inicio.
Instance Method Summary collapse
-
#each ⇒ Object
Funcion sin la cual no funcionaria el Enumerable.
-
#empty ⇒ Object
Funcion para comprobar si la lista esta vacia.
-
#extraer_final ⇒ Object
Funcion para extraer por el final un elemento de la lista.
-
#extraer_inicio ⇒ Object
Funcion para extraer por el inicio un elemento de la lista.
-
#initialize ⇒ Lista
constructor
Funcion para inicializar la lista vacia.
-
#insertar_uno_final(value) ⇒ Object
Funcion para insertar un valor al final de la lista.
-
#insertar_uno_inicio(value) ⇒ Object
Funcion para insertar un valor al inicio de la lista.
-
#insertar_varios(vector) ⇒ Object
Funcion para insertar varios valores al principio de la lista.
Constructor Details
#initialize ⇒ Lista
Funcion para inicializar la lista vacia
11 12 13 14 15 |
# File 'lib/dietas/lista.rb', line 11 def initialize() @inicio=nil @final=nil end |
Instance Attribute Details
#final ⇒ Object (readonly)
Returns the value of attribute final.
8 9 10 |
# File 'lib/dietas/lista.rb', line 8 def final @final end |
#inicio ⇒ Object (readonly)
Returns the value of attribute inicio.
8 9 10 |
# File 'lib/dietas/lista.rb', line 8 def inicio @inicio end |
Instance Method Details
#each ⇒ Object
Funcion sin la cual no funcionaria el Enumerable
78 79 80 81 82 83 84 |
# File 'lib/dietas/lista.rb', line 78 def each nodo = @inicio while(nodo != nil) yield nodo.value nodo = nodo.next end end |
#empty ⇒ Object
Funcion para comprobar si la lista esta vacia
17 18 19 20 21 22 23 |
# File 'lib/dietas/lista.rb', line 17 def empty if (@inicio==nil) return true else return false end end |
#extraer_final ⇒ Object
Funcion para extraer por el final un elemento de la lista
67 68 69 70 71 72 73 74 75 76 |
# 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 ⇒ Object
Funcion para extraer por el inicio un elemento de la lista
56 57 58 59 60 61 62 63 64 65 |
# 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) ⇒ Object
Funcion para insertar un valor al final de la lista
36 37 38 39 40 41 42 43 44 45 |
# 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) ⇒ Object
Funcion para insertar un valor al inicio de la lista
25 26 27 28 29 30 31 32 33 34 |
# 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) ⇒ Object
Funcion para insertar varios valores al principio de la lista
47 48 49 50 51 52 53 54 |
# 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 |