class Lista

Lista doblemente enlazada para almacenar elementos.

Attributes

final[RW]
inicio[RW]

Public Class Methods

new() click to toggle source

Contructor de la clase Lista

# File lib/menudietetico/menudietetico.rb, line 8
def initialize
    @inicio = nil
    @final = nil
end

Public Instance Methods

each() { |value| ... } click to toggle source

Recorre la lista para el uso del módulo enumerable

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

Extrae el inicio de la lista

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

Extrae un elemento del final de la lista

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

Devuelve el elemento final de la linea

# File lib/menudietetico/menudietetico.rb, line 28
def get_final
   return @final 
end
get_inicio() click to toggle source

Devuelve el elemento inicial de la lista

# File lib/menudietetico/menudietetico.rb, line 23
def get_inicio
   return @inicio 
end
insertar(elemento) click to toggle source

Inserta un elemento por el inicio de la lista

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

Inserta un elemento por el final de la lista

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

Inserta varios elementos por el inicio de la lista

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

Inserta varios elementos por el final de la lista Se le pasa como argumento un vector con los elementos a insertar en la lista

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

Comprueba si la lista está vacía

# 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