all tasks
This commit is contained in:
parent
b83f433714
commit
68f8f3e56b
14735 changed files with 178959 additions and 0 deletions
26
Task/Visualize-a-tree/Tcl/visualize-a-tree-1.tcl
Normal file
26
Task/Visualize-a-tree/Tcl/visualize-a-tree-1.tcl
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
package require struct::tree
|
||||
|
||||
proc visualize_tree {tree {nameattr name}} {
|
||||
set path {}
|
||||
$tree walk [$tree rootname] -order both {mode node} {
|
||||
if {$mode eq "enter"} {
|
||||
set s ""
|
||||
foreach p $path {
|
||||
append s [expr {[$tree next $p] eq "" ? " " : "\u2502 "}]
|
||||
}
|
||||
lappend path $node
|
||||
append s [expr {
|
||||
[$tree next $node] eq "" ? "\u2514\u2500" : "\u251c\u2500"
|
||||
}]
|
||||
if {[$tree keyexists $node $nameattr]} {
|
||||
set name [$tree get $node $nameattr]
|
||||
} else {
|
||||
# No node name attribute; use the raw name
|
||||
set name $node
|
||||
}
|
||||
puts "$s$name"
|
||||
} else {
|
||||
set path [lrange $path 0 end-1]
|
||||
}
|
||||
}
|
||||
}
|
||||
3
Task/Visualize-a-tree/Tcl/visualize-a-tree-2.tcl
Normal file
3
Task/Visualize-a-tree/Tcl/visualize-a-tree-2.tcl
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
# Sample tree to demonstrate with
|
||||
struct::tree t deserialize {root {} {} a 0 {} d 3 {} e 3 {} f 9 {} b 0 {} c 0 {}}
|
||||
visualize_tree t
|
||||
Loading…
Add table
Add a link
Reference in a new issue