【发布时间】:2009-10-30 10:29:24
【问题描述】:
我正在努力提高我们应用的性能。我以调用树的形式获得了性能信息,具有以下节点类:
public class Node
{
public string Name; // method name
public decimal Time; // time spent in method
public List<Node> Children;
}
我想打印出树,以便我可以看到节点之间的线 - 类似于this question。我可以在 C# 中使用什么算法来做到这一点?
编辑:显然我需要使用递归 - 但我的尝试不断将行放在错误的位置。我要的是一种特定的算法,它将以一种很好的方式打印树 - 何时打印垂直线以及何时打印水平线的详细信息。
编辑:仅使用字符串的副本来缩进节点是不够的。我不是在找
A
|-B
|-|-C
|-|-D
|-|-|-E
|-F
|-|-G
应该是的
A
+-B
| +-C
| +-D
| +-E
+-F
+-G
或任何类似的东西,只要树结构是可见的。请注意,C 和 D 的缩进与 G 不同 - 我不能只使用重复的字符串来缩进节点。
【问题讨论】:
-
以下是打印二叉树的其他一些答案,可以帮助未来的访问者解决这个问题:stackoverflow.com/q/4965335/198348。特别有用的是水平打印树。
标签: c# .net tree pretty-print