diff --git a/array-list.rb b/array-list.rb index a0d0342..5d7009d 100644 --- a/array-list.rb +++ b/array-list.rb @@ -1,26 +1,47 @@ # Implementation of a list using a Native array --> ruby does this automatically - +# we are trying to simulate what a ruby array does by simulating a native array under the hood class ArrayList def initialize - @storage = [] + @storage = [nil,nil,nil,nil,nil] + @size = 0 end def add(value) + @storage[@size] = value + @size += 1 end - def delete(value) + def delete #last value + @size -= 1 end def display + @size.times do |i| + puts @storage[i] + end end def include?(key) + @size.times do |i| + if @storage[i] == key + return true + end + end + return false end def size + return @size end def max + biggest = 0 + @size.times do |i| + if @storage[i] > @storage[biggest] + biggest = i + end + end + return @storage[biggest] end end @@ -36,6 +57,6 @@ def max puts "Displaying Array List:" arr.display -puts "Delete 10 and then display the array list:" -arr.delete(10) +puts "Delete last element and then display the array list:" +arr.delete arr.display diff --git a/linked-list.rb b/linked-list.rb index a1b30bd..b79923d 100644 --- a/linked-list.rb +++ b/linked-list.rb @@ -5,14 +5,15 @@ class Node attr_accessor :value, :next_node - def initialize(val,next_in_line=null) + def initialize(val,next_in_line=nil) @value = val - @next_nodex = next_in_line + @next_node = next_in_line puts "Initialized a Node with value: " + value.to_s end end class LinkedList + attr_accessor :head def initialize(val) # Initialize a new node at the head @head = Node.new(val,nil) @@ -63,12 +64,34 @@ def display end def include?(key) + current = @head + while current.next_node != nil + return true if current.value == key + current = current.next_node + end + return true if current.value == key + return false end def size + current = @head + size = 0 + while current.next_node != nil + size += 1 + current = current.next_node + end + size += 1 end def max + current = @head + max = current.value + while current.next_node != nil + max = current.value if current.value > max + current = current.next_node + end + max = current.value if current.value > max + max end end