二叉樹後序遍曆

二叉樹後序遍曆的步驟如下:

  • 按後序遍曆左子樹
  • 按後序遍曆右子樹
  • 訪問根節點

演算法

第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


上一篇: 二叉樹 下一篇: 二叉搜索樹