From 6dfd820772b0de4d85912d4770a5bd6b2caaf619 Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Fri, 26 Jul 2024 02:13:55 +0100 Subject: Added to_string for Nodes Recursive implementation with proper indenting! --- src/main.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src') 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 to_iterate; void iterate(void) -- cgit v1.2.3-13-gbd6f