aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 91accad..da63953 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -101,6 +101,31 @@ word_t alloc_node(Node n)
return nodes.size() - 1;
}
+void indent_depth(int depth, std::stringstream &ss)
+{
+ for (int i = 0; i < depth; ++i)
+ ss << "\t";
+}
+
+std::string to_string(Node n, int depth = 1)
+{
+ std::stringstream ss;
+ ss << "(" << to_string(n.value) << "\n";
+ indent_depth(depth, ss);
+ if (n.left == -1)
+ ss << "()";
+ else
+ ss << to_string(nodes[n.left], depth + 1);
+ ss << "\n";
+ indent_depth(depth, ss);
+ if (n.right == -1)
+ ss << "()";
+ else
+ ss << to_string(nodes[n.right], depth + 1);
+ ss << ")";
+ return ss.str();
+}
+
std::queue<word_t> to_iterate;
void iterate(void)