class Lista

Clase Lista que representa una lista simplemente enlazada.

Attributes

head[R]

Puntero al nodo cabeza de la lista

Public Class Methods

new() click to toggle source

Inicializa la cabeza a nil, para poder tener una lista vacía, sin nodos

# File lib/prct06/lista.rb, line 12
def initialize 

        @head = nil

end

Public Instance Methods

is_empty?() click to toggle source

Indica si la lista está vacía o no

# File lib/prct06/lista.rb, line 39
def is_empty?

        if @head==nil
                return true
        else 
                return false

        end
end
pop() click to toggle source

Permite sacar un elemento de la lista por la cabeza, devolviendo el valor del nodo y no el nodo en sí, y eliminando el nodo

# File lib/prct06/lista.rb, line 30
def pop 
        
        nodo = @head
        @head = @head.next
        return nodo.value
                        
end
push(*elementos) click to toggle source

Permite introducir un elemento de cualquier tipo en la lista, e internamente se creará un nodo y se meterá por la cabeza

# File lib/prct06/lista.rb, line 19
def push (*elementos)
        
        elementos.each do |i|
                
                nodo = Node.new(i, @head)
                @head = nodo
        end

end
to_s() click to toggle source

Imprime la lista con el formato adecuado, elemento por elemento, desde la cabeza en adelante

# File lib/prct06/lista.rb, line 50
def to_s
        
        nodo = @head
        cadena = ""
        cont = 1
        
        while nodo!=nil do
                cadena += "#{cont}) #{nodo.value}\n"
                nodo = nodo.next
                cont+=1
        end   

        cadena
end