二元樹中序遍歷

2019-10-16 22:02:42

二元樹中序遍歷的步驟:

  • 按順序遍歷左子樹
  • 存取根節點
  • 按順序遍歷右子樹

演算法

第1步:重複第2步到第4步,同時TREE!= NULL
第2步:INORDER(TREE -> LEFT)
第3步:寫入 TREE -> DATA
第4步:INORDER(TREE -> RIGHT)
        [迴圈結束]
第5步:結束

C語言實現函式

void in_order(struct treenode *tree)  
{  
    if(tree != NULL)  
    {  
        in_order(tree->left);  
        printf("%d",tree->root);  
        in_order(tree->right);  
    }  
}

範例

使用按中序遍歷方式遍歷以下二元樹。

  • 列印左子樹的最左邊節點,即23
  • 列印左子樹的根,即211
  • 列印右子節點,即89
  • 列印樹的根節點,即18
  • 然後,移動到二元樹的右子樹並列印最左邊的節點,即10
  • 列印右子樹的根,即20
  • 列印右的子樹,即32
  • 最後,列印順序為:23,211,89,18,10,20,32