Class: Lista
- Inherits:
-
Object
- Object
- Lista
- Includes:
- Enumerable
- Defined in:
- lib/menudietetico/menudietetico.rb
Overview
Lista doblemente enlazada para almacenar elementos.
Instance Attribute Summary collapse
-
#final ⇒ Object
Returns the value of attribute final.
-
#inicio ⇒ Object
Returns the value of attribute inicio.
Instance Method Summary collapse
-
#each ⇒ Object
Recorre la lista para el uso del módulo enumerable.
-
#extraer ⇒ Object
Extrae el inicio de la lista.
-
#extraer_final ⇒ Object
Extrae un elemento del final de la lista.
-
#get_final ⇒ Object
Devuelve el elemento final de la linea.
-
#get_inicio ⇒ Object
Devuelve el elemento inicial de la lista.
-
#initialize ⇒ Lista
constructor
Contructor de la clase Lista.
-
#insertar(elemento) ⇒ Object
Inserta un elemento por el inicio de la lista.
-
#insertar_final(elemento) ⇒ Object
Inserta un elemento por el final de la lista.
-
#insertar_muchos(vector) ⇒ Object
Inserta varios elementos por el inicio de la lista.
-
#insertar_muchos_final(vector) ⇒ Object
Inserta varios elementos por el final de la lista Se le pasa como argumento un vector con los elementos a insertar en la lista.
-
#is_empty ⇒ Object
Comprueba si la lista está vacía.
Constructor Details
#initialize ⇒ Lista
Contructor de la clase Lista
8 9 10 11 |
# File 'lib/menudietetico/menudietetico.rb', line 8 def initialize @inicio = nil @final = nil end |
Instance Attribute Details
#final ⇒ Object
Returns the value of attribute final.
132 133 134 |
# File 'lib/menudietetico/menudietetico.rb', line 132 def final @final end |
#inicio ⇒ Object
Returns the value of attribute inicio.
131 132 133 |
# File 'lib/menudietetico/menudietetico.rb', line 131 def inicio @inicio end |
Instance Method Details
#each ⇒ Object
Recorre la lista para el uso del módulo enumerable
14 15 16 17 18 19 20 |
# File 'lib/menudietetico/menudietetico.rb', line 14 def each nodo_aux = @inicio while nodo_aux != nil yield nodo_aux.value nodo_aux = nodo_aux.next end end |
#extraer ⇒ Object
Extrae el inicio de la lista
103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/menudietetico/menudietetico.rb', line 103 def extraer if(is_empty()) return nil elsif node_aux = @inicio @inicio = @inicio.next node_aux.next = nil node_aux.previo = nil return node_aux.value end end |
#extraer_final ⇒ Object
Extrae un elemento del final de la lista
116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
# File 'lib/menudietetico/menudietetico.rb', line 116 def extraer_final if(is_empty()) return nil elsif node_aux = @final @final = @final.previo if(@final!=nil) @final.next=nil elsif @inicio=nil end return node_aux.value end end |
#get_final ⇒ Object
Devuelve el elemento final de la linea
28 29 30 |
# File 'lib/menudietetico/menudietetico.rb', line 28 def get_final return @final end |
#get_inicio ⇒ Object
Devuelve el elemento inicial de la lista
23 24 25 |
# File 'lib/menudietetico/menudietetico.rb', line 23 def get_inicio return @inicio end |
#insertar(elemento) ⇒ Object
Inserta un elemento por el inicio de la lista
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/menudietetico/menudietetico.rb', line 45 def insertar(elemento) #inserta por el inicio nodo_aux = Node.new(elemento, nil, nil) if(is_empty()) @inicio = nodo_aux @final = nodo_aux @inicio.next = nil @inicio.previo = nil #@final = @inicio elsif aux = @inicio @inicio = nodo_aux @inicio.next = aux @inicio.previo = nil aux.previo = @inicio end end |
#insertar_final(elemento) ⇒ Object
Inserta un elemento por el final de la lista
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/menudietetico/menudietetico.rb', line 63 def insertar_final(elemento) nodo_aux = Node.new(elemento, nil, nil) if(is_empty()) @inicio = nodo_aux @final = nodo_aux @inicio.next = nil @inicio.previo = nil @final.previo = nil @final.next = nil #@final = @inicio elsif aux = @final @final = nodo_aux @final.previo = aux @final.next = nil end end |
#insertar_muchos(vector) ⇒ Object
Inserta varios elementos por el inicio de la lista
82 83 84 85 86 87 88 89 |
# File 'lib/menudietetico/menudietetico.rb', line 82 def insertar_muchos(vector) #inserta muchos por el inicio i=0 while i<vector.length self.insertar(vector[i]) i=i+1 end end |
#insertar_muchos_final(vector) ⇒ Object
Inserta varios elementos por el final de la lista Se le pasa como argumento un vector con los elementos a insertar en la lista
93 94 95 96 97 98 99 100 |
# File 'lib/menudietetico/menudietetico.rb', line 93 def insertar_muchos_final(vector) i=0 while i<vector.length self.insertar_final(vector[i]) i=i+1 end end |
#is_empty ⇒ Object
Comprueba si la lista está vacía
33 34 35 36 37 38 39 40 41 42 |
# File 'lib/menudietetico/menudietetico.rb', line 33 def is_empty # @inicio == nil r = false if(@inicio == nil) r = true elsif r = false end return r end |