设为首页 加入收藏

TOP

BFS(三):双向广度优先搜索(六)
2019-07-09 16:10:26 】 浏览:277
Tags:BFS 双向 广度 优先 搜索
p;    // 起始坐标入正向队列

     next.x = end_x;

     next.y = end_y;

     vis[end_x][end_y] = 2;      // 设置逆向探索标记为2

     q2[rear2++] = next;          // 终点坐标入逆向队列

     while (front1 < rear1 && front2<rear2)

     {

            if (rear1-front1 < rear2-front2)

                    {

                             cur = q1[front1++]; flag=1;    // 扩展正向队列

                    }

                    else

                    {

                             cur = q2[front2++]; flag=2;    // 扩展逆向队列

                    }

           for (i=0; i<8; ++i)

          {

             next.x = cur.x + dx[i];

             next.y = cur.y + dy[i];

             if (next.x<0 || next.x>=n || next.y<0 || next.y>=n)

                 continue;

             if (!vis[next.x][next.y])

             {

                 vis[next.x][next.y] = flag;    

                 step[next.x][next.y] = step[cur.x][cur.y] + 1;

                 if (flag==1)

                    q1[rear1++] = next;

                                      else

             &n

首页 上一页 3 4 5 6 下一页 尾页 6/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇基数排序的可复用实现(C++11/14/.. 下一篇DFS(三):八皇后问题

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目