33,027
社区成员




typedef struct bitnode
{
char value;
bitnode *left;
bitnode *right;
}*bitree,bitnode;
typedef enum{L,R} tagtype;
typedef struct stacknode
{
bitree ptr;
tagtype tag;
}stacknode;
void nonrecpostorder(bitree root)
{
stack<stacknode> s;
bitree p=root;
stacknode temp;
do
{
while(p)
{
temp.ptr=p;
temp.tag=L;
s.push(temp);
p=p->left;
}
while(!s.empty()&&s.top().tag==R)
{
p=s.top().ptr;
cout<<p->value;
s.pop();
}
if(!s.empty())
{
temp=s.top();
temp.tag=R;
p=temp.ptr->right;
}
}while(!s.empty());
}