class PriorityQueue def initialize(array = []) @data = [] array.each{|a| push(a)} end def push(element) @data.push(element) bottom_up end def pop if size == 0 return nil elsif size == 1 return @data.pop else min = @data[0] @data[0] = @data.pop top_down return min end end def size @data.size end private def swap(i, j) @data[i], @data[j] = @data[j], @data[i] end def parent_idx(target_idx) (target_id
