# Clase lista simplemente enlazada # @author alu0100880625 # @attr_reader [Node] head struct que almacena el nodo siguiente (:next) y el dato del actual (:value) class Sll Node=Struct.new(:value,:next) attr_reader :head # Método que instancia un objeto de la clase (una lista con un nodo nil nil) def initialize @head=Node.new(nil,nil) end # Método que crea un nodo que contenga el dato y lo inserta en la lista # @param [Data] data dato que se desea insertar def insert(data) aux=Node.new(data,@head) @head=aux end # Método que extrae un dato de la lista # @return [Data] dato extraido def extract aux=@head[:value] @head=@head[:next] aux end # Método que formatea la lista para mostrarla # @return [String] cadena que contiene la lista formateada def to_s aux=@head i=1 str="" while(aux[:next]!=nil) str+="#{i}) #{aux[:value]}\n" aux=aux[:next] i+=1 end str end end