再帰的なものを乗り越えることができるように、私はいくつかの演習を行っています。これらの1つは、再帰を使用して線形検索を書き直そうとしていることです。ここにあります:
int linearSearch(int a[], int n, int key)
{
if (n < 0 )
{
return -1;
}
if(key == a[n-1])
{
return n - 1;
}
linearSearch(a, n-1, key); // Line 1
}
return
ステートメントがない場合、コードは正しく実行されませんでした。なぜreturn
ステートメントを1行目に置く必要があるのかわかりませんか?この場合、nを1減らすために、再帰的に呼び出す必要があるのはすべてですか?