2012-10-27 99 views
0

據我所知,遞歸函數是一個函數,它稱爲self,它具有基本情況的特徵。這是二叉樹的預遍歷功能。這是一個遞歸函數嗎?基本案件的缺席讓我感到困惑。確定一個遞歸函數

void pre_order(struct node* current){ // preorder traversal 

    printf("%d\n",current->data); 

    if(current->left != NULL){ 
     pre_order(current->left); 
    } 

    if(current->right !=NULL){ 
     pre_order(current->right); 
    } 
} 
+1

如果'current-> left = current - > right = NULL'會怎麼樣? – Nishant

+1

是的,然後功能退出。那麼這裏是基本情況? – Assasins

回答

2

由於它自稱它是一個遞歸函數。這是多麼簡單。這裏也有一個基本案例,但也許有點隱藏。當我們到達這個二叉樹中的一個葉時,左邊和右邊的孩子將等於空,因此不會有更多的遞歸調用發生。這是我們的基本情況,有點隱藏。

+1

啊哈,誤讀。基本情況!不是基類! – djna