class Lista

Clase Lista que representa una lista doblemente enlazada con un inicio y un fin.

Attributes

final[R]
inicio[R]

Public Class Methods

new() click to toggle source

Constructor de la clase

# File lib/menu/list.rb, line 33
def initialize
    @inicio = nil
    @final = nil
end

Public Instance Methods

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

Método que recorre la lista y devuelve un vector con los valores de esta, necesario para los métodos de Enumerable (sort,min,max)

# File lib/menu/list.rb, line 12
def each
    node = @inicio
    while(node!=nil)
        yield node.value
        node = node.next
    end
end
empty() click to toggle source

Método que comprueba si la lista está vacía

# File lib/menu/list.rb, line 49
def empty
    if(@inicio == nil)
        true
    elsif
        false
    end
end
extract() click to toggle source

Método que extrae un valor de la lista (por el inicio)

# File lib/menu/list.rb, line 72
def extract
    if(empty)
        nil
    elsif
        node = @inicio
        @inicio = node.next
        if(!empty)
            @inicio.prev = nil
        end 
        node.next = nil
        node.value
    end
end
get_final() click to toggle source

Método que obtiene el inicio de la lista

# File lib/menu/list.rb, line 44
def get_final
    @final
end
get_inicio() click to toggle source

Método que obtiene el inicio de la lista

# File lib/menu/list.rb, line 39
def get_inicio
    @inicio
end
insert(x) click to toggle source

Método que inserta un valor en la lista (por el final)

# File lib/menu/list.rb, line 58
def insert(x)
    node = Nodo.new(x,nil,nil)
    if(empty)
        @inicio = node
        @final = node
    elsif
        @final.next = node
        node.prev = @final
        @final = node
    end
    true
end
to_s() click to toggle source
# File lib/menu/list.rb, line 19
def to_s
    
    output = ""
    node = @inicio
    
    while(node!=nil)
        output << "#{node.value}"
        node = node.next
    end
    
    output
    
end