我有一個採訪,我無法回答這個問題。你有一個二叉樹,你使用in_order把所有的節點放到一個數組中,並且返回數組大小的值。我被告知我不能使用輔助函數,併爲數組計數器添加int i = 0。我不得不使用的遞歸函數標題是。用C++遞歸返回一個值
In_order(Struct_Node * node, int *array){
}
因爲這是我寫的In_order。
if(node){
In_order(node->left, array);
//這條線就是我應該添加元素和返回值, 但我不知道如何做到這一點。這是我的一週,我需要了解 這個代碼如何工作的原因比代碼更多。
in_order(node->right,array);
}
我沒有真正寫出我在兩個In_order語句之間寫的內容,但是我寫的是錯誤的。
如果你要返回數組長度,那麼你的函數定義應該是'unsigned int in_order(Struct_Node * node,int * array){'。 – 2011-10-20 22:25:17
看看[維基百科](http://en.wikipedia.org/wiki/Tree_traversal#Sample_implementations)中的樹的順序遍歷。將存儲數據替換爲數組。說'* array = node-> data; array ++;' – 2011-10-20 22:26:59