V10/vol2/anim/bst.gen

awk '
BEGIN {	n = 20; root = null = -1
	for (i = 1; i <= n; i++)
        	root = insert(root, null, int(1000*rand()), 0)
}
function insert(p, pp, x, d) { # node p, parent pp, value x, depth d
	if (p == null) {
        	val[p = ++nodecount] = x
        	lson[p] = rson[p] = null
        	if (pp != null) print "line", val[pp], 1-d, val[p], -d
		print "text ljust", val[p], -d, "\"" x "\""
        	print "click insert"
	} else if (x < val[p])
        	lson[p] = insert(lson[p], p, x, d+1)
	else if (x > val[p])
        	rson[p] = insert(rson[p], p, x, d+1)
	return p
}
'