Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Branches - Macaria #35

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Branches - Macaria #35

wants to merge 1 commit into from

Conversation

mdove92
Copy link

@mdove92 mdove92 commented Dec 9, 2019

Linked List Comprehension Questions

Question Response
1. What advantages does a LinkedList have over an Array? A linked list is more memory efficient because you only need to allocate as much memory as there are elements, instead of allocating a whole block initially.
2. When is an Array more advantageous? It is quicker to insert a value into the middle of an array than a linked list.

@mdove92 mdove92 changed the title Finished linked list methods Branches - Macaria Dec 9, 2019
@CheezItMan
Copy link

Just in response to your comprehension questions.

  1. Yes
  2. No, both are O(n) to insert into the middle. However to find an element in a sorted array is much faster and to get an element from a specific index it's also faster.

Copy link

@CheezItMan CheezItMan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You definitely have a feel for linked lists, but you have a few bugs here. Take a look at my comments and let me know if you have questions.

@@ -10,36 +10,71 @@ def initialize
# Time complexity - ?
# Space complexity - ?
def add_first(data)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@@ -10,36 +10,71 @@ def initialize
# Time complexity - ?
# Space complexity - ?
def add_first(data)

@head = Node.new(data, @head)
end

# Time complexity - ?
# Space complexity - ?
def get_first

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

return nil
else
return @head.data
end
end

# Time complexity - ?
# Space complexity - ?
def length

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

count += 1
temp = temp.next
end
return count
end

# Time complexity - ?
# Space complexity - ?
def add_last(data)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍
This works, but it's a little overly complex. Can you see a way to simplify it?

end

# Time complexity - ?
# Space complexity - ?
def get_last
temp = @head

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What if head is nil?

Suggested change
temp = @head
return nil if @head.nil?
temp = @head

while temp != nil && temp.next != nil
temp = temp.next
end
return temp.data
end

# Time complexity - ?
# Space complexity - ?
def get_at_index(index)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about if the index is greater than the length of the list?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants