欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

回溯法解迷宫问题的两个解法

程序员文章站 2022-05-06 12:11:29
...

解法1:

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 /**//*
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 使用回溯法计算迷宫问题
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
*/

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 #include
<stdio.h>
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 #include
<stdlib.h>
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 structpos
...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
introw;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
intcol;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }
;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
voidmain()...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
intmaze[5][5]=...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
0,1,0,1,0,
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
0,0,0,1,0,
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
0,1,0,1,0,
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
0,1,0,0,0,
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
0,0,1,1,0
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }
;//1表示障碍,0表示可以通过
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
intdir=1;//标记方向:上1左2下3右4
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
inti=0;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
intj=0;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 structpos
*stack=(structpos*)calloc(25,sizeof(structpos));
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
inttop=0;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
while(true)...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
if(i==4&&j==4)...{//已经找到终点,打印结果
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
printf("Finish! Thepathis: ");
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
for(dir=0;dir<top;dir++)...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 printf(
"(");
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 printf(
"%d",stack[dir].row);
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 printf(
",");
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 printf(
"%d",stack[dir].col);
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 printf(
")");
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 printf(
"(4,4)");
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
break;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
if(dir==1)...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
if(i>0&&*(*(maze+i-1)+j)==0//下一个位置不越界而且可以通过
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
&&!(stack[top-1].row==i-1&&stack[top-1].col==j))...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
//还需满足:这个将要走的位置不属于刚才走来的路!
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
stack[top].row=i;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 stack[top].col
=j;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 top
++;//进栈
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
i--;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 dir
=1;//重置方向标识
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
}
else...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 dir
++;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
elseif(dir==2)...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
if(j>0&&*(*(maze+i)+j-1)==0
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
&&!(stack[top-1].row==i&&stack[top-1].col==j-1))...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 stack[top].row
=i;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 stack[top].col
=j;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 top
++;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 j
--;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 dir
=1;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }
else...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 dir
++;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
elseif(dir==3)...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
if(i<4&&*(*(maze+i+1)+j)==0
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
&&!(stack[top-1].row==i+1&&stack[top-1].col==j))...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 stack[top].row
=i;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 stack[top].col
=j;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 top
++;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 i
++;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 dir
=2;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }
else...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 dir
++;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
else...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
if(j<4&&*(*(maze+i)+j+1)==0
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
&&!(stack[top-1].row==i&&stack[top-1].col==j+1))...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 stack[top].row
=i;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 stack[top].col
=j;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 top
++;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 j
++;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 dir
=1;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }
else...{//已经没有别的路了,只有回头
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
*(*(maze+i)+j)=1;//在回头前标识当前路为不能通过
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
i=stack[top-1].row;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 j
=stack[top-1].col;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 top
--;//出栈
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
dir=1;//重置方向标识符
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
}

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }

 


解法2:

 

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 /**//*
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 使用回溯法计算迷宫问题
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
*/

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 #include
<stdio.h>
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 #include
<stdlib.h>
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 structpos
...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
introw;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
intcol;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
intdirection[5];//标记方向direction[1~4]上左下右
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
}
;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
voidmain()...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
intmaze[5][5]=...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
0,1,0,1,0,
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
0,0,0,1,0,
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
0,1,0,1,0,
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
0,1,0,0,0,
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
0,0,1,1,0
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }
;//1表示障碍,0表示可以通过
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
intdirection[5]=...{0};
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
intdir=1;//作为direction数组的下标
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
inti=0;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
intj=0;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
intcount=0;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 structpos
*stack=(structpos*)calloc(25,sizeof(structpos));//栈,存放路径
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
inttop=0;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
//将栈内元素全部初始化
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
for(count=0;count<25;count++)...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 stack[count].col
=0;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 stack[count].row
=0;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
for(intt=0;t<=4;t++)
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 stack[count].direction[t]
=0;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
while(true)...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
if(i==1&&j==2)...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
intt=1;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }
;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
if(i==4&&j==4)...{//已经找到终点,打印结果
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
printf("Finish! Thepathis: ");
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
for(count=0;count<top;count++)...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 printf(
"(");
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 printf(
"%d",stack[count].row);
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 printf(
",");
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 printf(
"%d",stack[count].col);
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 printf(
")");
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 printf(
"(4,4)");
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
break;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
if(direction[1]==0
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
&&i>0
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
&&*(*(maze+i-1)+j)==0)...{//上方向的下一个位置不越界而且可以通过
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
stack[top].row=i;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 stack[top].col
=j;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 direction[
1]=1;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
for(count=1;count<=4;count++)...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 stack[top].direction[count]
=direction[count];
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 direction[count]
=0;//使下一个位置方向状态初始化
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
}

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 direction[
3]=1;//更新下一个位置:使朝向原位置的方向标识置1
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
top++;//进栈
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
direction[3]=1;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 i
--;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
elseif(direction[2]==0
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
&&j>0
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
&&*(*(maze+i)+j-1)==0)...{//左方向的下一个位置不越界而且可以通过
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
stack[top].row=i;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 stack[top].col
=j;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 direction[
2]=1;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
for(count=1;count<=4;count++)...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 stack[top].direction[count]
=direction[count];
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 direction[count]
=0;//使下一个位置方向状态初始化
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
}

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 direction[
4]=1;//更新下一个位置:使朝向原位置的方向标识置1
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
top++;//进栈
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
j--;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
elseif(direction[3]==0
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
&&i<4
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
&&*(*(maze+i+1)+j)==0)...{//下方向的下一个位置不越界而且可以通过
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
stack[top].row=i;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 stack[top].col
=j;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 direction[
3]=1;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
for(count=1;count<=4;count++)...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 stack[top].direction[count]
=direction[count];
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 direction[count]
=0;//使下一个位置方向状态初始化
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
}

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 direction[
1]=1;//更新下一个位置:使朝向原位置的方向标识置1
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
top++;//进栈
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
i++;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
elseif(direction[4]==0
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
&&j<4
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
&&*(*(maze+i)+j+1)==0)...{//右方向的下一个位置不越界而且可以通过
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
stack[top].row=i;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 stack[top].col
=j;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 direction[
4]=1;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
for(count=1;count<=4;count++)...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 stack[top].direction[count]
=direction[count];
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 direction[count]
=0;//使下一个位置方向状态初始化
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
}

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 direction[
2]=1;//更新下一个位置:使朝向原位置的方向标识置1
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
top++;//进栈
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
j++;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }
else...{//已经没有别的路了,只有回头
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
if(top==0)...{
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 printf(
"Nopath!");
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
break;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
*(*(maze+i)+j)=1;//在回头前标识当前路为不能通过
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
top--;//出栈
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
i=stack[top].row;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 j
=stack[top].col;
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
for(count=1;count<=4;count++)
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 direction[count]
=stack[top].direction[count];
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 }

回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
//printf("(%d,%d)",i,j);
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
}
//while
回溯法解迷宫问题的两个解法
            
    
    博客分类: Algorithm 回溯迷宫 
}

 

相关标签: 回溯 迷宫