可以使用哪些算法在控制台中绘制二叉树?树以C实现.例如,数字:2 3 4 5 8的BST将在控制台中显示为:

它是一个非常普通的二叉树,除了其中一个节点可能为空的事实.
我想找到一种以水平方式输出它的方法(也就是说,根节点在左侧并向右扩展).
我有一些垂直扩展树木的经验(根节点在顶部,向下扩展),但在这种情况下,我不知道从哪里开始.
最好是遵循以下几条规则:
例如,这是一个有效的树,有六个端节点(节点由一个名称及其深度表示):编辑:请参阅问题的底部以获得替代,更容易渲染
[a0]-----------[b3]------[c5]------[d8]
\ \ \----------[e9]
\ \----[f5]
\-[g1]--------[h4]------[i6]
\ \--------------------[j10]
\-[k3]
它代表垂直的显式二叉树:
0 a
/ \
1 g *
/ \ \
2 * * *
/ \ \
3 k * b
/ / \
4 h * *
/ \ \ \
5 * * f c
/ \ / \
6 * i * *
/ / \
7 * * *
/ / …