/**
* * s 0 1 0
* 0 0 0 0
* 0 0 1 0
* 0 1 e 0
* 0 0 0 1
* ** 豎軸為x軸
* 橫軸為y軸
*//**
* 迷宮找最短路徑 0代表平地,1代表障礙物,s代表起點,e代表終點 (起點和終點肯定也是0)
*/
package algorithm;
public
class
algorithm2
,//右
,//下
,//左
//上}
;static
int[
] alllocation =
newint[50
][50]
;static
int[
] marks =
newint[50
][50]
;static
static
int endx, endy;
//終點
static
int startx, starty;
//起點
static
int min =
99999
;static
int n =5;
//行數
static
int m =4;
//列數
public
static
void
main
(string[
] args)
//深度優先遍歷
public
static
void
dfs(
int x,
int y,
int step)
return;}
//列舉四種走法 這裡的走法是 右 下 左 上
for(k =
0; k <=
3; k++
)//判斷該點是否為障礙物或者已經在路徑中
if(alllocation[tx]
[ty]==0
&& marks[tx]
[ty]==0
)}return;}
}
package algorithm;
public
class
algorithm3
public
static
void
main
(string[
] args)
int a[
]=newint[51
][51]
,//迷宮座標儲存
book[
]=newint[51
][51]
;//標記是否使用過
//我這列從1,1開始賦值
a[1]
[1]=
0;a[1]
[2]=
0;a[1]
[3]=
1;a[1]
[4]=
0;a[2]
[1]=
0;a[2]
[2]=
0;a[2]
[3]=
0;a[2]
[4]=
0;a[3]
[1]=
0;a[3]
[2]=
0;a[3]
[3]=
1;a[3]
[4]=
0;a[4]
[1]=
0;a[4]
[2]=
1;a[4]
[3]=
0;a[4]
[4]=
0;a[5]
[1]=
0;a[5]
[2]=
0;a[5]
[3]=
0;a[5]
[4]=
1;//右 下 左 上
int next[
]=,,
,};int head =1,
//頭 tail =1;
//尾int n =5,
//行數
m =4,
//列數
startx =1,
//標記開始座標被占用
starty =1,
p =4,
//終點x座標
q =3,
//終點y座標
tx =1,
//記錄變化的x座標
ty =1,
//記錄變化的y座標
flag;
//標記是否到達終點 0:沒達到 1:表示達到
que[tail]
.x = startx;
que[tail]
.y = starty;
que[tail]
.f =0;
que[tail]
.s =0;
tail++
; book[startx]
[starty]=1
; flag =0;
//標記是否到達終點 0:沒達到 1:表示達到
while
(head < tail)
if(a[tx]
[ty]==0
&& book[tx]
[ty]==0
)if(tx == p && ty == q)}if
(flag ==1)
head++;}
system.out.
println
("################最少步數為########");
system.out.
println
(que[tail -1]
.s);
system.out.
println
("###########最短路徑的逆行座標###############");
note note = que[tail -1]
;dowhile
(note.f !=0)
;}}
列印結果如下:
################最少步數為########
7###########最短路徑的逆行座標###############
4,34,4
3,42,4
2,32,2
1,2
尋找全排列的下乙個數
題目 給出乙個正整數,找出這個正整數所有數字全排列的下乙個數。即就是在乙個整數包含數字的全部組合中,找到乙個大於且僅大於原數的新整數。例如 輸入12345,則返回12354。解題思路 從後向前檢視逆序區域,找到逆序區域的前一位,也就是數字交換的邊界 讓逆序區域的前一位和逆序區域中大於它的最小的數字交...
乙個走迷宮的程式
本文給出乙個c語言版的走迷宮的程式。迷宮的寬和高,迷宮矩陣,迷宮的入口和出口從檔案讀入。程式首先讀入迷宮資料,然後顯示迷宮矩陣,最後呼叫迷宮搜尋程式找到乙個路徑,並輸出。1.迷宮的表示。迷宮用結構體matrix來表示 包括迷宮矩陣 迷宮的寬,迷宮的高,迷宮入口的座標,迷宮出口的座標。結構體定義如下 ...
寫乙個簡單的迷宮
二話不說 上迷宮 include include define number 13 int fx 4 int fy 4 void prin char arr number 列印 bool work char arr number int x,int y 判斷是否可以走 bool mymap char...