Class: Lista
Overview
Definicion de la Clase Lista
Instance Attribute Summary collapse
-
#cabecera ⇒ Object
readonly
Añadimos atributo de lectura.
-
#cola ⇒ Object
readonly
Añadimos atributo de lectura.
-
#size ⇒ Object
readonly
Añadimos atributo de lectura.
Instance Method Summary collapse
- #convert(lista) ⇒ Object
-
#each ⇒ Object
metodo each.
-
#initialize ⇒ Lista
constructor
Inicializamos la cabecera y la cola de la lista a nulo.
-
#ordenarEach(lista) ⇒ Object
Método para ordenar un array creado a partir de una lista.
-
#ordenarFor(lista) ⇒ Object
Método para ordenar un array creado a partir de una lista.
-
#ordenarSort(lista) ⇒ Object
Método para ordenar un array creado a partir de una lista usando el método sort.
-
#pop ⇒ Object
Funcion pop que devuelve el valor de la cabecera y la elimina de la lista.
-
#push(valores) ⇒ Object
Metodo push de a lista que introduce los valores dentro de la misma.
Constructor Details
#initialize ⇒ Lista
Inicializamos la cabecera y la cola de la lista a nulo
18 19 20 21 22 |
# File 'lib/alimentos/lista.rb', line 18 def initialize @cabecera = nil @cola= nil @size = 0 end |
Instance Attribute Details
#cabecera ⇒ Object (readonly)
Añadimos atributo de lectura
14 15 16 |
# File 'lib/alimentos/lista.rb', line 14 def cabecera @cabecera end |
#cola ⇒ Object (readonly)
Añadimos atributo de lectura
14 15 16 |
# File 'lib/alimentos/lista.rb', line 14 def cola @cola end |
#size ⇒ Object (readonly)
Añadimos atributo de lectura
14 15 16 |
# File 'lib/alimentos/lista.rb', line 14 def size @size end |
Instance Method Details
#convert(lista) ⇒ Object
83 84 85 |
# File 'lib/alimentos/lista.rb', line 83 def convert lista lista.map { |x| x} end |
#each ⇒ Object
metodo each
75 76 77 78 79 80 81 |
# File 'lib/alimentos/lista.rb', line 75 def each nodo = @cola while(nodo != nil) yield nodo.valor nodo = nodo.siguiente end end |
#ordenarEach(lista) ⇒ Object
Método para ordenar un array creado a partir de una lista.
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/alimentos/lista.rb', line 103 def ordenarEach lista auxList = lista.convert lista indice = 0 auxList.each do |x| auxList.each do |y| if (indice < auxList.length-1) if (auxList[indice].to_f > auxList[indice+1].to_f) temporal = auxList[indice] auxList[indice] = auxList[indice+1] auxList[indice+1] = temporal end end indice = indice+1 end indice = 0 end auxList end |
#ordenarFor(lista) ⇒ Object
Método para ordenar un array creado a partir de una lista.
88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/alimentos/lista.rb', line 88 def ordenarFor lista auxList = lista.convert lista for i in 0..(auxList.length) do for j in 0..(auxList.length-2) do if(auxList[j].to_f > auxList[j+1].to_f) temporal = auxList[j] auxList[j] = auxList[j+1] auxList[j+1] = temporal end end end auxList end |
#ordenarSort(lista) ⇒ Object
Método para ordenar un array creado a partir de una lista usando el método sort
123 124 125 126 |
# File 'lib/alimentos/lista.rb', line 123 def ordenarSort lista auxList = lista.convert lista auxList.sort end |
#pop ⇒ Object
Funcion pop que devuelve el valor de la cabecera y la elimina de la lista
61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/alimentos/lista.rb', line 61 def pop if(@cabecera!=nil) node = @cabecera @cabecera = @cabecera.prev if(@cabecera!=nil) @cabecera.siguiente = nil node.prev= nil else @cola = nil end return node.valor end end |
#push(valores) ⇒ Object
Metodo push de a lista que introduce los valores dentro de la misma
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/alimentos/lista.rb', line 26 def push (valores) if(valores.instance_of? Array) if(@cola == nil) @cola = Nodo.new(valores[0],nil,nil) @cabecera = @cola valores.shift() @size = @size + 1 end valores.each do |valor| aux= @cabecera @cabecera = Nodo.new(valor,nil,aux) aux.siguiente= @cabecera @size = @size + 1 end else if(@cola==nil) @cola = Nodo.new(valores,nil,nil) @cabecera = @cola @size = @size + 1 else aux= @cabecera @cabecera = Nodo.new(valores,nil,aux) aux.siguiente= @cabecera @size = @size + 1 end end end |