I'm having trouble with using std::stack to retrieve the values from a recursive function.
- by Peter Stewart
Thanks to the help I received in this post:
http://stackoverflow.com/questions/2761918/how-do-i-use-this-in-a-member-function
I have a nice, concise recursive function to traverse a tree in postfix order:
void Node::postfix()
{
if (left != __nullptr) { left->postfix(); }
if (right != __nullptr) { right->postfix(); }
cout<<cargo<<"\n";
return;
};
Now I need to evaluate the values and operators as they are returned. My problem is how to retrieve
them. I tried the std::stack:
#include <stack>
stack <char*> s;
void Node::postfix()
{
if (left != __nullptr) { left->postfix(); }
if (right != __nullptr) { right->postfix(); }
s.push(cargo);
return;
};
but when I tried to access it in main()
while (!s.empty())
{
cout<<s.top<<"\n";
s.pop;
}
I got the error:
'std::stack<_Ty::top': function call missing argument list; use '&std::stack<_Ty::top' to create
a pointer to member'
I'm stuck.
Another question to follow shortly.