6.8.5 后序遍历算法
那么同样的,后序遍历也就很容易想到应该如何写代码了。
- /* 二叉树的后序遍历递归算法 */
- void PostOrderTraverse(BiTree T)
- {
- if (T == NULL)
- return;
- /* 先后序遍历左子树 */
- PostOrderTraverse(T->lchild);
- /* 再后序遍历右子树 */
- PostOrderTraverse(T->rchild);
- /* 显示结点数据,可以更改为其他对结点操作 */
- printf("%c", T->data);
- }
如图6-8-20所示,后序遍历是先递归左子树,由根结点A→B→D→H,结点H无左孩子,再查看结点H的右孩子K,因为结点K无左右孩子,所以打印K,返回。

图6-8-20
最终,后序遍历的结点的顺序就是:KHDEB-IFJGCA。同学们可以自己按照刚才的办法得出这个结果。
