diff --git a/codes/cpp/include/PrintUtil.hpp b/codes/cpp/include/PrintUtil.hpp index b85da88e..703c7b8f 100644 --- a/codes/cpp/include/PrintUtil.hpp +++ b/codes/cpp/include/PrintUtil.hpp @@ -210,4 +210,34 @@ class PrintUtil { printTree(root->left, trunk, false); } + /** + * @brief Get the Stack String object + * + * @tparam T + * @param stack + * @return string + */ + template + static string getStackString(stack stack) { + ostringstream s; + if(!stack.empty()){ + s << stack.top(); + stack.pop(); + } + while(!stack.empty()){ + s << ", " << stack.top(); + stack.pop(); + } + return "top->" + s.str() + "]"; + } + /** + * @brief Print a stack + * + * @tparam T + * @param stack + */ + template + static void printStack(stack &stack) { + cout << getStackString(stack) << '\n'; + } };