1 typedef structdirection; //方向
78 typedef struct
point; //位置
1213
14 typedef struct
stacknode*linkstackptr;//節點資料結構
鏈棧及基本操作實現
1 typedef structlinkstack;//定義鏈棧56
7bool
isempty(linkstack l)
1112 status createlink(linkstack &l)
1819
linkstackptr gettop(linkstack l)
2223
24 status push(linkstack &l,linkstackptr s)
3031
32 status pop(linkstack &l)
37 p=l.top; //出棧
38 l.top=l.top->next;
39free
(p);
40 l.count--;
41return
ok;42 }
以下是預定義及用陣列實現的迷宮地圖:
1 #include2 #include3 #include456#define ok 1
7#define error 0
8#define overflow -2910
#define size 8
1112
13int
enterx,entery;//入口座標
14int
exitx,exity;//出口座標
1516
17int map[size][size]=,
19 ,
20 ,
21 ,
22 ,
23 ,
24 ,
25
26};//迷宮地圖,1代表牆壁 0代表路
2728
29void findmap(int
map[size])
38if((j==0||j==size-1)&&map[i][j]==0)42
}43}//搜尋地圖的入口和出口
44if((enterx==exitx)&&(entery==exity))49}
5051
void printmap(int a[size])
56 printf("\n"
);//57}
58 }
以下是主函式和實現:
1bool panduan(int x,int
y)return
false;5
} //判斷是否是沒走過的迷宮快67
89main() //到達迷宮終點,結束返回
3435
3637
if(q->direct.top==0
)else56}
57}58else
if(q->direct.right==0
)else77}
78}79else
if(q->direct.bottom==0
)else98}
99}100else
if(q->direct.left==0
)else
119}
120 }else
if(q->direct.left==1&&q->direct.right==1&&q->direct.top==1&&q->direct.bottom==1
)124
125126
127128
}129 //判斷是否找到路徑
130if(flag==true
)else
137138
139140
141 }
利用棧求解迷宮問題
利用棧求解迷宮問題 源 include include define m 8 define n 8 define maxsize m n typedef struct box typedef struct sttype int mg m 2 n 2 bool mgpath int xi,int yi...
棧實現迷宮求解問題
總體感觸是 不要著急,一步一步來,問題很容易解決的。首先是要實現乙個迷宮的地圖。明確如何儲存地圖,用vector實現二維陣列,每個元素代表地圖的乙個格仔。需要儲存哪些資訊。一張地圖的某乙個方格需要標示 能否通過,是否走過了。94 struct point 位置資訊可用postype儲存。就是 str...
迷宮求解 棧的實現
一 題目及分析 二 思路 迷宮 迷宮的檔案儲存方式 三 include include define length 10 define width 10 define start hang 1 從0行開始計算row define start lie 1 從0列開始column define end ...