導航:首頁 > 編程語言 > 漢諾塔棧模擬遞歸程序

漢諾塔棧模擬遞歸程序

發布時間:2023-02-26 21:23:43

Ⅰ 用C語言代碼來編寫含漢諾塔問題,利用堆棧來實現.求代碼

演算法思想
對於漢諾塔問題,當只移動一個圓盤時,直接將圓盤從 A 針移動到 C 針。若移動的圓盤為 n(n>1),則分成幾步走:把 (n-1) 個圓盤從 A 針移動到 B 針(藉助 C 針);A 針上的最後一個圓盤移動到 C 針;B 針上的 (n-1) 個圓盤移動到 C 針(藉助 A 針)。每做一遍,移動的圓盤少一個,逐次遞減,最後當 n 為 1 時,完成整個移動過程。
因此,解決漢諾塔問題可設計一個遞歸函數,利用遞歸實現圓盤的整個移動過程,問題的解決過程是對實際操作的模擬。
程序代碼
#include <stdio.h>
int main()
{
int hanoi(int,char,char,char);
int n,counter;
printf("Input the number of diskes:");
scanf("%d",&n);
printf("\n");
counter=hanoi(n,'A','B','C');
return 0;
}
int hanoi(int n,char x,char y,char z)
{
int move(char,int,char);
if(n==1)
move(x,1,z);
else
{
hanoi(n-1,x,z,y);
move(x,n,z);
hanoi(n-1,y,x,z);
}
return 0;
}
int move(char getone,int n,char putone)
{
static int k=1;
printf("%2d:%3d # %c---%c\n",k,n,getone,putone);
if(k++%3==0)
printf("\n");
return 0;
}

閱讀全文

與漢諾塔棧模擬遞歸程序相關的資料

熱點內容
qq新版本2014下載50 瀏覽:777
win10關掉自動休眠 瀏覽:133
百度地圖jsp使用 瀏覽:58
iphone4電信插卡 瀏覽:141
c串口調試怎麼讓返回一個數據 瀏覽:440
逆戰文件包哪裡找 瀏覽:295
4g運存適合win10嗎 瀏覽:84
什麼是數據鈑金修復 瀏覽:846
wps打開顯示文件轉換格式 瀏覽:186
coreldrawx4led排孔工具 瀏覽:682
表示文件路徑用什麼字元隔開 瀏覽:549
word2010宏安全性設置 瀏覽:820
win7硬碟密碼設置 瀏覽:240
電腦有沒有這個文件在哪裡查 瀏覽:340
金蘋果內容摘要 瀏覽:580
網站怎麼對接qq在線客服 瀏覽:437
solidworks曲面建模教程 瀏覽:69
數控編程和計算機有什麼區別 瀏覽:541
jsp與webservice 瀏覽:659
k歌的數據包括什麼 瀏覽:300

友情鏈接