遞迴演算法的應用

2021-04-15 12:30:35 字數 714 閱讀 5185

提起漢諾塔,大家都會想起遞迴程式,大家都知道遞迴程式的實現是用棧來實現的,但是,有些程式是需要用到棧,但是我們還要編寫一棧的資料結構,挺麻煩的,所以,用遞迴程式實現起來是很簡單的!

1.學習資料結構時,講到迷宮演算法,是用棧實現的,如果用遞迴演算法實現會更簡單的.掃雷程式也是實行遞迴搜尋的.

對於迷宮程式:

if(map[i-1][j]==1)//i-1行j列是可通的,map是迷宮的形狀

draw(i-1,j);//畫圖,走到該位置

digui(i-1,j);//對i-1行j列位置進行遞迴搜尋

if(map[i][j-1]==1)//i行j-1列是可通的

draw(i,j-1);//畫圖,走到該位置

digui(i,j-1);//對i行j-1列位置進行遞迴搜尋

if(map[i+1][j]==1)//i+1行j列是可通的

draw(i+1,j);//畫圖,走到該位置

digui(i+1,j);//對i+1行j列位置進行遞迴搜尋

if(map[i+1][j]==1)//i+1行j列是可通的

draw(i+1,j);//畫圖,走到該位置

digui(i+1,j);//對i+1行j列位置進行遞迴搜尋

別忘記給已經走過的位置做標誌,否則,只能在原位置繞圈子!! 

遞迴演算法應用

遞迴就是程式在執行的過程中呼叫自己 用自己定義自己 遞迴的三要素 邊界條件 遞迴前進段 遞迴返回段 遞迴和棧 遞迴和棧有這緊密的聯絡,大多數編譯器都是使用棧來實現遞迴的,當呼叫方法時,編譯器會把這個方法的所有引數和返回位址都壓入棧中,然後把控制轉移給這個方法。當方法返回時,這些值退棧。引數消失了,並...

遞迴演算法簡單應用

1.遞迴和非遞迴分別實現求第n個斐波那契數。斐波那契數 亦稱之為斐波那契數列 義大利語 successione di fibonacci 又稱 分割數列 費波那西數列 費波拿契數 費氏數列,指的是這樣乙個數列 1 1 2 3 5 8 13 21 在數學上,斐波那契數列以如下被以遞迴的方法定義 f0 ...

遞迴演算法應用例項 八皇后演算法

回溯演算法的經典案例 回溯演算法的典型案例。該問題是國際西洋棋棋手馬克斯.貝瑟爾於1848年提出 在8x8格的西洋棋上擺放八個皇后,使其不能互相攻擊,即 任意兩個皇后都不能外乾同一行 同一列或同一斜線上,問有多少種擺法。思路分析 第乙個皇后先放在第一行第一列 第二個皇后放在第二行第一列 然後判斷是否...