Visualize a tree: Difference between revisions

Content deleted Content added
Added BBC BASIC
Edwin (talk | contribs)
Add Perl 6 solution.
Line 386:
 
draw_graph(g)$</lang>
 
=={{header|Perl 6}}==
 
<lang perl6>sub visualize-tree($tree, &label, &children,
:$indent = '',
:@mid = ('├─', '│ '),
:@end = ('└─', ' '),
) {
sub visit($node, *@pre) {
gather {
take @pre[0] ~ label($node);
my @children := children($node);
my $end = @children.end;
for @children.kv -> $_, $child {
when $end { take visit($child, (@pre[1] X~ @end)) }
default { take visit($child, (@pre[1] X~ @mid)) }
}
}
}
visit($tree, $indent xx 2);
}
 
# example tree built up of pairs
my $tree = root=>[a=>[a1=>[a11=>[]]],b=>[b1=>[b11=>[]],b2=>[],b3=>[]]];
 
.say for visualize-tree($tree, *.key, *.value.list);</lang>
 
{{out}}
<pre>root
├─a
│ └─a1
│ └─a11
└─b
├─b1
│ └─b11
├─b2
└─b3</pre>
 
=={{header|Python}}==