class Algorithmable::Cups::StacksAndQueues::TripleStack
Constants
- MAX_INT
Public Class Methods
new(size)
click to toggle source
# File lib/algorithmable/cups/stacks_and_queues/triple_stack.rb, line 7 def initialize(size) @size = size + 1 @pointers = [0, 0, 0] @array = Array.new (@size * 3) 0.upto(2).each do |index| @array[@size * index] = MAX_INT end end
Public Instance Methods
empty?(stack_num)
click to toggle source
# File lib/algorithmable/cups/stacks_and_queues/triple_stack.rb, line 36 def empty?(stack_num) @pointers[stack_num].zero? end
inspect()
click to toggle source
# File lib/algorithmable/cups/stacks_and_queues/triple_stack.rb, line 40 def inspect "#<Stack @pointers=#{@pointers} @stacks=#{@array}>" end
peek(stack_num)
click to toggle source
# File lib/algorithmable/cups/stacks_and_queues/triple_stack.rb, line 31 def peek(stack_num) pointer = get_stack_pointer(stack_num) @array[pointer] end
pop(stack_num)
click to toggle source
# File lib/algorithmable/cups/stacks_and_queues/triple_stack.rb, line 23 def pop(stack_num) pointer = get_stack_pointer(stack_num) value = @array[pointer] @array[pointer] = nil @pointers[stack_num] -= 1 value end
push(stack_num, item)
click to toggle source
# File lib/algorithmable/cups/stacks_and_queues/triple_stack.rb, line 16 def push(stack_num, item) pointer = get_stack_pointer(stack_num) + 1 @pointers[stack_num] += 1 @array[pointer] = item item end
Private Instance Methods
get_stack_pointer(stack_num)
click to toggle source
# File lib/algorithmable/cups/stacks_and_queues/triple_stack.rb, line 46 def get_stack_pointer(stack_num) @size * stack_num + @pointers[stack_num] end