Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // My solution to the challenge posted here:
- // http://blogs.msdn.com/b/ericlippert/archive/2010/09/09/old-school-tree-display.aspx
- // by Allon Guralnek
- public static void PrintTree(Node root)
- {
- PrintTreeInternal(root, null, false);
- }
- private static void PrintTreeInternal(Node node, string treeTrunk, bool isLastSibling)
- {
- if (treeTrunk != null)
- Console.WriteLine(treeTrunk + (isLastSibling ? "└─" : "├─") + node.Text);
- else
- Console.WriteLine(node.Text); // When 'treeTrunk' is null, 'node' is the root.
- for (int i = 0; i < node.Children.Count; i++)
- {
- Node child = node.Children[i];
- string nextTreeTrunk;
- bool isLastChild = i == node.Children.Count - 1;
- if (treeTrunk == null)
- {
- nextTreeTrunk = "";
- }
- else
- {
- if (isLastSibling)
- nextTreeTrunk = treeTrunk + " ";
- else
- nextTreeTrunk = treeTrunk + "│ ";
- }
- PrintTreeInternal(child, nextTreeTrunk, isLastChild);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement