From d83c11dbeda200f7a715b20ce6e8a2f70966d42b Mon Sep 17 00:00:00 2001 From: Rachael Gomez Date: Thu, 17 Dec 2020 09:47:57 -0800 Subject: [PATCH 1/2] first three done. --- lib/linked_list.rb | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/lib/linked_list.rb b/lib/linked_list.rb index 9e97557..b1640b5 100644 --- a/lib/linked_list.rb +++ b/lib/linked_list.rb @@ -10,19 +10,32 @@ def initialize # Time complexity - ? # Space complexity - ? def add_first(data) - + new_node = Node.new(data) + new_node.next = @head + @head = new_node + return @head.data end # Time complexity - ? # Space complexity - ? def get_first - + if @head + return @head.data + end + return nil end # Time complexity - ? # Space complexity - ? def length - return 0 + count = 0 + current = @head + while current != nil + count += 1 + current = current.next + end + + return count end # Time complexity - ? From 4aeaa7e973ef8986a111c365dc314e7e1813d6dc Mon Sep 17 00:00:00 2001 From: Rachael Gomez Date: Wed, 6 Jan 2021 12:12:18 -0800 Subject: [PATCH 2/2] completed all waves --- lib/linked_list.rb | 36 ++++++++++++++++++++++++++++++++++-- test/linked_list_test.rb | 8 ++++---- 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/lib/linked_list.rb b/lib/linked_list.rb index b1640b5..05c404e 100644 --- a/lib/linked_list.rb +++ b/lib/linked_list.rb @@ -41,18 +41,50 @@ def length # Time complexity - ? # Space complexity - ? def add_last(data) - + current = @head + if @head == nil + current = Node.new(data) + @head = current + return + end + until current == nil + previous = current + current = current.next + end + previous.next = Node.new(data) + return end # Time complexity - ? # Space complexity - ? def get_last + current = @head + if @head == nil + return nil + end + until current == nil + previous = current + current = current.next + end + return previous.data end # Time complexity - ? # Space complexity - ? def get_at_index(index) - + count = 0 + current = @head + if @head == nil + return nil + end + until count == index + count += 1 + current = current.next + end + if current == nil + return nil + end + return current.data end end diff --git a/test/linked_list_test.rb b/test/linked_list_test.rb index bdbbd06..8e558e7 100644 --- a/test/linked_list_test.rb +++ b/test/linked_list_test.rb @@ -21,7 +21,7 @@ end end - xdescribe 'add_first & get_first' do + describe 'add_first & get_first' do it 'can add values to an empty list' do # Act @list.add_first(3) @@ -51,7 +51,7 @@ end end - xdescribe "length" do + describe "length" do it "will return 0 for an empty list" do expect(@list.length).must_equal 0 end @@ -66,7 +66,7 @@ end end - xdescribe "addLast & getLast" do + describe "addLast & getLast" do it "will add to the front if the list is empty" do @list.add_last(1) expect(@list.get_first).must_equal 1 @@ -93,7 +93,7 @@ end end - xdescribe 'get_at_index' do + describe 'get_at_index' do it 'returns nil if the index is outside the bounds of the list' do expect(@list.get_at_index(3)).must_be_nil end