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 |