知道如何打印这样的树吗?
2
/ \
/ \
/ \
/ \
7 5
/ \ \
/ \ \
2 6 9
/ \ /
5 8 4
答案 0 :(得分:1)
水平解决方案运行良好,因为您可以使用pre-order深度优先搜索(如您所示)从每个子树构造树,这与控制台在a输出一行的方式很好地对齐时间。
垂直解决方案更加困难,因为您需要知道树末端的所有节点才能计算出整个宽度。因此,您需要分析树,存储数据然后开始绘图。
另一个选项虽然可能不那么“优雅”(依赖于定义),但可能会使用类似curses库的东西,其中显示列和行的概念是可互换的。