class Element
def initialize(value)
@datum = value
end
def datum
@datum
end
def next
@next
end
def next=(element)
@next = element
end
end
class SimpleLinkedList
def initialize(array=nil)
if array.nil?
@list = Array.new
else
@list = array.map { |e| Element.new(e) }
end
@size = @list.size
end
def list
@list
end
def size
@size
end
def size=(value)
@size = value
end
def to_a
list.map(&:datum)
end
def push(element)
list[size] = element
@size += 1
self
end
def pop
list.last
end
def reverse!
self.to_a.reverse!
end
end