資料結構遞迴的學習

2021-07-08 19:51:30 字數 750 閱讀 6867

我用的是人民郵電出版社的資料結構。

書上剛開始給了階乘和fibonacci的演算法,沒什麼可說的。接下來給了個演算法分析,這個很有意思。

意思是:把下面這個輸出出來:122

3334444

55555

這並不難,**是:

#includevoid display(int n)

list;

void display(list stl,int l,int r)

}int main()

display(stl,0,stl.size-1);

return 0;

}

非遞迴的,**是:

#include//非遞迴

#includetypedef struct list

list;

typedef struct

stack;

void display(list stl,int l,int r)

else}}

} int main()

display(stl,0,stl.size-1);

return 0;

}

我認為,遞迴和非遞迴之間的轉化最巧妙的地方就是在於,他們的方法是一樣的,只不過是表達方式不一樣罷了。在轉換的過程中,非遞迴借助了棧來做第三者,這個和樹的層次遍歷有異曲同工之妙。

在接下來,是乙個應用問題,揹包:時間不夠了,10天後再來變這段**。

資料結構 遞迴呼叫學習

在回顧資料結構的時候,重新學習了一下對遞迴的使用,希望對您有幫助。package com.qxlx 迴圈改遞迴 改為遞迴的關鍵是發現邏輯 相似性 不要忘記遞迴出口 構造相似性 如果沒有明顯的相似性,需要主動構造 不能相似的原意很可能是缺少引數 遞迴與數學上的的遞推公式和類似 author jia p...

資料 結構 遞迴

遞迴不一定非要像斐波拉契數列一樣在return中呼叫函式 遞迴的結束條件就是初始條件值 通常的方法將遞迴呼叫放在if語句中 n!通過遞迴實現 常用方法還是通過while實現 def jiecheng n if n 0 return 1 else sum n jiecheng n 1 右邊只有階乘表示...

資料結構 遞迴

所謂遞迴,就是在乙個函式,過程,或者資料結構的內部,又直接或間接出現定義本身的應用。在以下三種情況中,常常使用遞迴。比如階乘函式,我們能夠將其分解成幾個小問題來求解,比如求5!我們可以先求4!想求4!先求3!這樣一步步使問題簡化的方法,稱之為分治法。採取分治法求解,需要滿足下面三個條件 1.能夠將乙...