class LevelNodes
Attributes
size[R]
Public Class Methods
new(nodes)
click to toggle source
# File lib/huffman_coding/level_nodes.rb, line 6 def initialize(nodes) @hash = Hash.new{|h, k| h[k] = [] } @hash[0] = nodes.sort @size = nodes.size end
Public Instance Methods
pop_min_node()
click to toggle source
# File lib/huffman_coding/level_nodes.rb, line 12 def pop_min_node level, nodes = @hash.min_by{|_, v| v[0] } node = nodes.shift @hash.delete(level) if nodes.size == 0 @size -= 1 return level, node end
push_node(level, node)
click to toggle source
# File lib/huffman_coding/level_nodes.rb, line 20 def push_node(level, node) @hash[level] << node @hash[level].sort! @size += 1 end