二叉樹前序遍曆

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

  1. 訪問根節點
  2. 以前序遍曆左子樹
  3. 以前序遍曆右子樹

演算法

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

C語言實現的函數

void pre_order(struct treenode *tree)
{
    if(tree != NULL)
    {
        printf("%d",tree→ root);
        pre-order(tree→ left);
        pre-order(tree→ right);
    }
}

示例
使用先序遍曆方式遍曆以下二叉樹 -

  • 使用的遍曆方案是前序遍曆,因此,要列印的第一個元素是18
  • 遞歸遍曆左子樹。 左子樹的根節點是211,列印它並向左移動。
  • 左邊是空的,因此列印右側子項並移動到根的右側子樹。
  • 因此,20是根的右子樹,列印它並向左移動。 由於左子樹是空的,因此向右移動並列印那裏存在的唯一元素,即190
  • 最後,列印順序為:18,211,90,20,190

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