Class: TrieNode

Inherits:
Object
  • Object
show all
Defined in:
lib/classbench/trie_node.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(level) ⇒ TrieNode

Returns a new instance of TrieNode.



8
9
10
11
12
13
14
15
# File 'lib/classbench/trie_node.rb', line 8

def initialize(level)
  self.prefixes_count = 0

  self.subtree = {}
  self.subtree_weights = {}

  self.level = level
end

Instance Attribute Details

#levelObject

depth of node



2
3
4
# File 'lib/classbench/trie_node.rb', line 2

def level
  @level
end

#prefixes_countObject

number of occurences of the prefix



3
4
5
# File 'lib/classbench/trie_node.rb', line 3

def prefixes_count
  @prefixes_count
end

#subtreeObject

Hash mapping character -> TrieNode



5
6
7
# File 'lib/classbench/trie_node.rb', line 5

def subtree
  @subtree
end

#subtree_weightsObject

Returns the value of attribute subtree_weights.



6
7
8
# File 'lib/classbench/trie_node.rb', line 6

def subtree_weights
  @subtree_weights
end

Instance Method Details

#compute_weightsObject



17
18
19
20
21
22
23
24
25
26
# File 'lib/classbench/trie_node.rb', line 17

def compute_weights
  weight = 0

  subtree.each do |char, st|
    self.subtree_weights[char] = st.compute_weights
    weight += self.subtree_weights[char]
  end

  weight += self.prefixes_count
end

#increment_prefixesObject



28
29
30
# File 'lib/classbench/trie_node.rb', line 28

def increment_prefixes
  self.prefixes_count += 1
end

#one_weightObject



36
37
38
# File 'lib/classbench/trie_node.rb', line 36

def one_weight
  subtree_weights["1"]
end

#zero_weightObject



32
33
34
# File 'lib/classbench/trie_node.rb', line 32

def zero_weight
  subtree_weights["0"]
end