非递归后序遍历
//非递归后序遍历
void PostOrder(TreeNode *root) {
stack S;
do {
while (root)
{
if (root->rc)
S.push(root->rc);
S.push(root);
root = root->lc;
}
root = S.pop();
if (root->rc && root->rc == S.visit_top())
{
S.pop();
S.push(root);
root = root->rc;
}
else
{
Visit(root);
root = nullptr;
}
} while (!S.isEmpty());
}