我正在編寫反映兩個對象圖的實用程序,並返回一個值以指示圖是否相同。這讓我想到,是否有一種普遍接受的模式來編寫遞歸算法,該算法從遞歸中的某個位置返回一個值?遞歸算法:建議的模式和實踐?
我的解決方案可能會使用ref參數和看起來像這樣的僞代碼:
public static bool IsChanged(T current, T previous)
{
bool isChanged = false;
CheckChanged(current, previous, ref isChanged);
return isChanged ;
}
private static void CheckChanged(T current, T previous, ref isChanged)
{
//perform recursion
if (graphIsChanged)
isChanged = true;
else
CheckChanged(current, previous, ref isChanged);
}
是否有更好的/清潔/更有效的方式?這種功能是否有一個通用模式?
謝謝..我真的不能在我的情況下使用它,因爲最後的調用是有條件的取決於當前和以前的形式..但不管怎樣,一個很好的答案和示例 – flesh 2009-06-02 19:27:08