//用遞迴函式求解迷宮問題
#define maxlength 25
//設迷宮的最大行列為25
typedef
int mazetype[maxlength]
[maxlength]
;//迷宮陣列型別[行][列]
struct postype//迷宮座標位置型別
;mazetype m;
//迷宮陣列
postype begin1, end1;
//迷宮的入口座標,出口座標
int x, y;
//迷宮的行數,列數
void
print()
printf
("\n");
}}void
try(postype cur,
int curstep),,
,};//,移動方向,依次為東南西北
for(i =
0; i <=
3; i++
)//依次試探東南西北四個方向
m[next.x]
[next.y]=-
1;//恢復為通路,以便在另乙個方向試探另一條路
curstep--
;//足跡也減1}}
}void
init
(int k)
for(i =
0; i < y; i++
)for
(i =
1; i <= x -
1; i++)}
printf
("請輸入迷宮內牆單元數:");
scanf
("%d"
,&j)
;printf
("請依次輸入迷宮內牆每個單元的行數、列數:\n");
for(i =
1; i <= j; i++
)printf
("迷宮結構如下:\n");
print()
;printf
("輸入入口的行數,列數:");
scanf
("%d,%d"
,&begin1.x,
&begin1.y)
;printf
("輸入出口的行數,列數:");
scanf
("%d,%d"
,&end1.x,
&end1.y);}
void
main()
程式執行結果:
int c =0;
//全域性變數,搬動次數
void
move
(char x,
int n,
char z)
void
hanoi
(int n,
char x,
char y,
char z)
else
}void
main()
程式執行結果: 資料結構 使用棧實現遞迴函式的非遞迴計算
用棧實現的c語言 為 include define maxsize 10 棧的最大容量,此時n能取的最大值為11 double fun int n,double x 函式宣告 intmain printf 輸入x x scanf s lf x printf 計算結果為 lf fun n,x whil...
11 資料結構 棧(筆記)
棧是線性表的進一步封裝,棧可以用順序表實現,也可以用鍊錶實現。這裡主要是用順序表或者是鍊錶來儲存資料元素 實現以下操作。棧 def init self self.items 使用列表實現棧 self.item singlelinklist 使用單鏈表實現棧 def is empty self 判斷是...
資料結構 棧 (十) 使用棧實現佇列
使用兩個棧模擬佇列,比如輸入 1 2 3 4,則要求輸出仍是 1 2 3 4 1 有兩個棧,乙個用來存放入隊資料 資料棧 乙個用來輔助 輔助棧 實現資料出隊。2 資料新增時,會依次壓人棧,取資料時會取棧頂元素,但要模擬佇列的先進先出,所以就得取棧底元素,那麼輔助棧就派上用場了,把資料棧的元素依次彈出...