Skip to content

Instantly share code, notes, and snippets.

@lordhumunguz
Created May 22, 2013 05:09
Show Gist options
  • Save lordhumunguz/5625372 to your computer and use it in GitHub Desktop.
Save lordhumunguz/5625372 to your computer and use it in GitHub Desktop.
Data Structure exercise
class Array_List
attr_accessor :initial_size, :list_size, :array_length, :content
def initialize
@initial_size = 10
@list_size = 0
@array_length = @initial_size
@content = Array.new(@initial_size)
end
def append(element)
if self.array_length == self.list_size
self.content += Array.new(self.array_length)
self.array_length *= 2
end
self.content[self.list_size] = element
self.list_size += 1
end
def prepend(element)
if self.array_length == self.list_size
self.content += Array.new(self.array_length)
self.array_length *= 2
end
# self.list_size.times do |i|
# end
self.list_size += 1
end
def get_element(index)
if index >= self.list_size
raise "No such element"
else
self.content[index]
end
end
def set_element(index, element)
if index >= self.list_size
raise "Index out of bound"
else
self.content[index] = element
end
self.content
end
end
#driver code:
array = Array_List.new
puts "List Size: #{array.list_size}"
puts "Array Length: #{array.array_length}"
p array.content
array.prepend('hi')
puts "List Size: #{array.list_size}"
puts "Array Length: #{array.array_length}"
p array.content
array.prepend('hi')
puts "List Size: #{array.list_size}"
puts "Array Length: #{array.array_length}"
p array.content
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment