二叉樹後序遍曆的步驟如下:
- 按後序遍曆左子樹
- 按後序遍曆右子樹
- 訪問根節點
演算法
第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
。