非递归后序遍历

           //非递归后序遍历
	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());

	}

  

posted @ 2020-05-26 21:39  Royzzzzz  阅读(149)  评论(0编辑  收藏  举报