mirror of
https://github.com/krahets/hello-algo.git
synced 2024-12-25 00:26:29 +08:00
Update PrintUtil.hpp
Reverse the stack before printing.
This commit is contained in:
parent
26f9d6363e
commit
a8afc963b6
1 changed files with 21 additions and 23 deletions
|
@ -210,34 +210,32 @@ class PrintUtil {
|
|||
|
||||
printTree(root->left, trunk, false);
|
||||
}
|
||||
/**
|
||||
* @brief Get the Stack String object
|
||||
*
|
||||
* @tparam T
|
||||
* @param stack
|
||||
* @return string
|
||||
*/
|
||||
template <typename T>
|
||||
static string getStackString(stack<T> 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
|
||||
* @param stk
|
||||
*/
|
||||
template <typename T>
|
||||
static void printStack(stack<T> &stack) {
|
||||
cout << getStackString(stack) << '\n';
|
||||
static void printStack(stack<T> &stk) {
|
||||
// Reverse the input stack
|
||||
stack<T> tmp;
|
||||
while(!stk.empty()) {
|
||||
tmp.push(stk.top());
|
||||
stk.pop();
|
||||
}
|
||||
// Generate the string to print
|
||||
ostringstream s;
|
||||
bool flag = true;
|
||||
while(!tmp.empty()) {
|
||||
if (flag) {
|
||||
s << tmp.top();
|
||||
flag = false;
|
||||
}
|
||||
else s << ", " << tmp.top();
|
||||
tmp.pop();
|
||||
}
|
||||
cout << "[" + s.str() + "]" << '\n';
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue