垂直打印树

Printing Tree Vertically

本文关键字:打印 垂直      更新时间:2023-10-16

知道如何打印这样的树吗?

       2               
      /        
     /         
    /          
   /           
   7       5       
  /           
 /            
 2   6       9   
    /      /   
    5 8     4 

水平解决方案工作得很好,因为您可以使用预先排序的深度优先搜索(如您所示)从每个子树构建树,这与控制台一次输出一行的方式非常吻合。

垂直解比较困难,因为你需要知道树末端的所有节点来计算全宽度。因此,您需要分析树,存储数据,然后开始绘图。

另一种选择,虽然可能不那么"优雅"(取决于定义),但将使用类似curses库的东西,其中显示列和行的概念是可互换的。