Method: Classbench::Trie.get_prefix_nesting

Defined in:
lib/classbench/trie.rb

.get_prefix_nesting(node) ⇒ Object



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# File 'lib/classbench/trie.rb', line 107

def self.get_prefix_nesting(node)
  if node # non-empty subtree
     # get prefix nesting from successor nodes
     zero_nesting = get_prefix_nesting(node.subtree["0"])
     one_nesting = get_prefix_nesting(node.subtree["1"])
     # will this node increase prefix nesting?
     if node.prefixes_count > 0 # this is a prefix node
      is_prefix = 1
     else
      is_prefix = 0
     end

     # return maximum of successors' nesting, possibly incremented
     if zero_nesting > one_nesting
      return zero_nesting + is_prefix
     else
      return one_nesting + is_prefix
     end
  else # empty subtree
     return 0
  end
end