kswang2400/data-struct

View on GitHub
lib/count_children.rb

Summary

Maintainability
A
0 mins
Test Coverage
require "data-struct"

tree = BinarySearchTree.new(10)
tree.insert(5)
tree.insert(1)
tree.insert(7)
tree.insert(11)
tree.insert(2)

def count(tree)
  output = { 0 => 0 }
  count_c(tree, level = 0, output)

  output
end

def count_c(tree, level, output)
  return if children.length == 0
  level += 1
  output[level] += children.length
  children.each { |c| count_c(c, level, output) }
end