class Lista

Definicion de la Clase Lista

Attributes

cabecera[R]

Añadimos atributo de lectura

cola[R]

Añadimos atributo de lectura

size[R]

Añadimos atributo de lectura

Public Class Methods

new() click to toggle source

Inicializamos la cabecera y la cola de la lista a nulo

# File lib/alimentos/lista.rb, line 18
def initialize
         @cabecera = nil
     @cola= nil
     @size = 0
end

Public Instance Methods

convert(lista) click to toggle source
# File lib/alimentos/lista.rb, line 83
def convert lista
    lista.map { |x| x}
end
each() { |valor| ... } click to toggle source

metodo each

# File lib/alimentos/lista.rb, line 75
def each
nodo = @cola
while(nodo != nil)
    yield nodo.valor
    nodo = nodo.siguiente
end
end
ordenarEach(lista) click to toggle source

Método para ordenar un array creado a partir de una lista.

# 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) click to toggle source

Método para ordenar un array creado a partir de una lista.

# 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) click to toggle source

Método para ordenar un array creado a partir de una lista usando el método sort

# File lib/alimentos/lista.rb, line 123
def ordenarSort lista
    auxList = lista.convert lista 
    auxList.sort
end
pop() click to toggle source

Funcion pop que devuelve el valor de la cabecera y la elimina de la lista

# 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) click to toggle source

Metodo push de a lista que introduce los valores dentro de la misma

# 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