迷宫问题并求最短路径

   # include  & lt; iostream>   # include  & lt; cassert>   # include  & lt; stack>   # include  & lt; vector>      struct  Pos   {   int  _row;   int  _col;   };      bool  MinPath (vector,, MinPath)   {   断言(! maze.empty ());   Pos> stack<路径;   bool  firstOrNo =,真的;   vector祝辞,tmp =,迷宫;   while (迷宫(enrty._row] [enrty._col], !=, 3)   {   时间=tmp 迷宫;   path.push (enrty);   while  (! path.empty ())   {   Pos  cur =, path.top ();   tmp [cur._row] [cur._col],=, 2;   if  (path.top () ._row ==, row 作用;1)   {   迷宫(path.top () ._row] [path.top () ._col],=, 4;   if  (firstOrNo  | |, path.size (), & lt;, minPath.size ())   {   时间=minPath 路径;   时间=firstOrNo 假;   }   while  (! path.empty ())   {   path.pop ();   }   打破;   }//上   Pos  next =,坏蛋;   next._row——;   if  (next._row 祝辞=,0,,,,next._row  & lt;,行   ,,,next._col 的在=,0,,,,next._col  & lt;坳   ,和tmp [next._row] [next._col],==, 0)   {   path.push(下);   继续;   }//下   next =,坏蛋;   next._row + +;   if  (next._row 祝辞=,0,,,,next._row  & lt;,行   ,,,next._col 的在=,0,,,,next._col  & lt;坳   ,和tmp [next._row] [next._col],==, 0)   {   path.push(下);   继续;   }//左   next =,坏蛋;   next._col——;   if  (next._row 祝辞=,0,,,,next._row  & lt;,行   ,,,next._col 的在=,0,,,,next._col  & lt;坳   ,和tmp [next._row] [next._col],==, 0)   {   path.push(下);   继续;   }//右   next =,坏蛋;   next._col + +;   if  (next._row 祝辞=,0,,,,next._row  & lt;,行   ,,,next._col 的在=,0,,,,next._col  & lt;坳   ,和tmp [next._row] [next._col],==, 0)   {   path.push(下);   继续;   }   迷宫(path.top () ._row] [path.top () ._col],=, 3;   path.pop ();   }//while  !空(路径)      },//while 大//在地图中标出最短路径   stack


迷宫问题并求最短路径