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