11 資料結構 使用遞迴實現棧的應用舉例

2021-10-25 06:28:23 字數 1674 閱讀 4682

//用遞迴函式求解迷宮問題

#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 資料新增時,會依次壓人棧,取資料時會取棧頂元素,但要模擬佇列的先進先出,所以就得取棧底元素,那麼輔助棧就派上用場了,把資料棧的元素依次彈出...