首頁 > 科技

二叉樹的遞迴遍歷操作

2021-06-01 00:12:09

二叉樹的遍歷是指按某種次序依次訪問樹中的每個結點,使得每個結點均被訪問一次,而且僅被訪問一次。

二叉樹圖例

一、遞迴先序遍歷的操作

遍歷示例圖

如果二叉樹為空,什麼也不做。否則:

訪問根結點;先序遍歷左子樹;先序遍歷右子樹。void PreOrder(BiTree T){

if(T!=NULL){

printf(「%c」,T->data) //訪問根結點

PreOrder(T->lchild); //遞迴遍歷左子樹

PreOrder(T->rchild); //遞迴遍歷右子樹

}}

遍歷序列: A B D G C E F

二、遞迴中序遍歷的操作

如果二叉樹為空,什麼也不做。否則:

中序遍歷左子樹;訪問根結點;中序遍歷右子樹。void InOrder(BiTree T){

if(T!=NULL){

InOrder(T->lchild); //遞迴遍歷左子樹

printf(「%c」,T->data); //訪問根結點

InOrder(T->rchild); //遞迴遍歷右子樹

}}

遍歷序列:D G B A E C F

三、遞迴後序遍歷的操作

如果二叉樹為空,什麼也不做。否則:

後序遍歷左子樹;後序遍歷右子樹;訪問根結點。void PostOrder(BiTree T){

if(T!=NULL){

PostOrder(T->lchild); //遞迴遍歷左子樹

PostOrder(T->rchild); //遞迴遍歷右子樹

printf(「%c」,T->data); //訪問根結點

}}

遍歷序列:G D B E F C A


IT145.com E-mail:sddin#qq.com