一、二叉樹的先序遍歷
規則,從根節點開始,優先訪問每一個左孩子,每次訪問都要輸出數據
示例,先序遍歷的順序
下圖節點的編號都代表着他們被訪問的次序
void preOrder(BiTree T){ if(T != NULL){ printf("%d \n",T->data); preOrder(T->lchild); preOrder(T->rchild); } }
二、中序遍歷二叉樹
從根節點開始,優先訪問左孩子,當一個雙親節點的左孩子的所有節點被訪問完時,訪問這個雙親節點,之后訪問它的右孩子,它的右孩子的左孩子的所有節點被訪問完時才能訪問它
太繞了我要死了。
示例
void inOrder(BiTree T){ if(T != NULL){ inOrder(T->lchild); printf("%d \n",T->data); inOrder(T->rchild); } }
三、后序遍歷二叉樹
當一個雙親節點的所有子節點都被訪問完時,才訪問這個雙親節點,訪問這些子節點都是優先訪問左孩子節點
void postOrder(BiTree T){ if(T != NULL){ postOrder(T->lchild); postOrder(T->rchild); printf("%d \n",T->data); } }