Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Binary tree with some boundary rules
require 'rubygems'
require 'graphviz'
@min_level=1
@max_level=12
@max_depth=10
start_level=6
@g = GraphViz.new(:G, :type => "strict digraph" )
def add_node(level, depth, parent)
if depth<@max_depth
current=[level, depth].join(",")
sub=level<=>@min_level
add=@max_level<=>level
add_node(level-sub, depth+1, current)
add_node(level+add, depth+1, current)
@g.add_node(current).label=level.to_s
@g.add_edge(parent, current) unless parent=="00"
end
end
add_node(start_level, 0, "00")
@g.output( :png => "/www/pages/g.png" ) # http://plea.se/g.png
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment