二叉树后序遍历的步骤如下:
- 按后序遍历左子树
- 按后序遍历右子树
- 访问根节点
算法
第1步:重复第2步到第4步,同时TREE!= NULL
第2步:POSTORDER(TREE -> LEFT)
第3步:POSTORDER(TREE -> RIGHT)
第4步:写入TREE -> DATA
[循环结束]
第5步:结束
C语言代码实现
void post-order(struct treenode *tree)
{
if(tree != NULL)
{
post-order(tree→ left);
post-order(tree→ right);
printf("%d",tree→ root);
}
}
示例
使用后序遍历遍历以下树 -
- 打印二叉树左子树的左子节点,即
23
。 - 打印二叉树左子树的右子节点,即
89
。 - 打印左子树的根节点,即
211
。 - 现在,在打印根节点之前,移动到右子树并打印左子节点,即
10
。 - 打印右子节点,即
32
。 - 打印根节点,即
20
。 - 最后,打印树的根,即
18
。
最后打印顺序为:23
,89
,211
,10
,32
,18
。