while(!stack.empty())
{
while(NULL != p)
{
visit(p->data);
p = p->left;
stack.push(p);
}
stack.pop();
if(!stack.empty())
{
p = stack.pop();
p = p->right;
stack.push(p);
}
}
while(!stack.empty())
{
while(NULL != p)
{
visit(p->data);
p = p->left;
stack.push(p);
}
stack.pop();
if(!stack.empty())
{
p = stack.pop();
p = p->right;
stack.push(p);
}
}