How to print a tree structure?
With Recursion - SO / How to print binary tree diagram?
template<class Node>
void printTree(const Node& tree, const string& indent = "", bool last = true)
{
cout << indent << "+- " << tree.to_s() << endl;
auto new_indent = indent + ( last ? " " : "| ");
for (int i = 0; i < tree.child_size(); ++i) {
bool last = i == (tree.child_size() - 1);
printTree( tree.childs()[i], new_indent, last);
}
}
// call with
printTree( tree);
Output look likes:
+- root
+- branch-A
| +- sibling-X
| | +- grandchild-A
| | +- grandchild-B
| +- sibling-Y
| | +- grandchild-C
| | +- grandchild-D
| +- sibling-Z
| +- grandchild-E
| +- grandchild-F
+- branch-B
+- sibling-J
+- sibling-K
Written on May 5, 2019, Last update on July 3, 2021
algorithm
graph
tree
c++