Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 33 additions & 6 deletions lib/queue.rb
Original file line number Diff line number Diff line change
@@ -1,16 +1,37 @@
class Queue

def initialize
# @store = ...
raise NotImplementedError, "Not yet implemented"
@store = Array.new(10)
@size = 10
@front = -1
@front = -1
end

def enqueue(element)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

👍

raise NotImplementedError, "Not yet implemented"
if @front == -1
@front = 0
@back = 1
@store[@front] = element
elsif @front == @back
raise ArgumentError, "This queue is full"
else
@store[@back] = element
@back = (@back + 1) % @size
end
end

def dequeue

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

👍 , Well done!

raise NotImplementedError, "Not yet implemented"
if @front == -1
raise ArgumentError, "This queue is empty"
else
value = @store[@front]
@front = (@front + 1) % @size
if @front == @back
@front = -1
@back = -1
end
return value
end
end

def front
Expand All @@ -22,10 +43,16 @@ def size
end

def empty?
raise NotImplementedError, "Not yet implemented"
return @front == -1
end

def to_s

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

👍

return @store.to_s
list = []
current = @front
until curent == @back
list << @store[current]
current = (current + 1) % @size
end
return list.to_s
end
end
12 changes: 7 additions & 5 deletions lib/stack.rb
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
class Stack
def initialize
# @store = ...
raise NotImplementedError, "Not yet implemented"
@store = LinkedList.new
end

def push(element)
raise NotImplementedError, "Not yet implemented"
@store.add_last(element)
end

def pop
raise NotImplementedError, "Not yet implemented"
if @store.empty?
raise ArgumentError, "Stack is empty"
end
return @store.remove_last
end

def empty?
raise NotImplementedError, "Not yet implemented"
return @store.empty?
end

def to_s
Expand Down