1. 程式人生 > >資料結構——遞迴學習

資料結構——遞迴學習

對比了兩種實現斐波那契的程式碼,迭代和遞迴的區別是:迭代使用的是迴圈結構,遞迴使用的是選擇結構。使用遞迴能使程式的結構更清晰、更簡潔、更容易讓人理解,從而減少讀懂程式碼的時間。

迭代
int main()
{
	int i;
	int arr[40];
	arr[0]=0;
	arr[1]=1;
	printf("%d\n",arr[0] );
	printf("%d\n",arr[1] );
	for(i=2;i<40;i++)
	{
		arr[i]=arr[i-1]+arr[i-2];
		printf("%d\n",arr[i] );
	}
	return 0;
}
遞迴

int fib(int i)
{
	if(i<2)
		return i == 0 ? 0 : 1
	return Fib(i-1) + Fib(i-2);
}
3、利用遞迴方法實現字元逆序列印

編寫一個遞迴函式,實現將輸入的任意長度的字串反向輸出的功能。

例如輸入字串abcd則輸出字串dcba。

void print()
{
	char a;
	scanf(“%c”, &a);
	if( a !=‘#’)  
		print();
	if( a !=‘#’)  
		printf(“%c”, a);
}


四、總結

關於遞迴切記要含有結束條件,還有就是遞迴函式呼叫和函式返回,遞迴的返回順序是它呼叫的順序的逆序;