设为首页 加入收藏

TOP

DFS和BFS的比较(四)
2019-07-08 12:10:10 】 浏览:178
Tags:DFS BFS 比较
先访问顺序为:

(1,1) -- (3,2) -- (5,3) -- (5,1) -- (4,4) -- (5,2) -- (2,3) -- (4,2) -- (5,4) -- (3,5) -- (4,3) -- (5,5)。

      (4)采用广度优先搜索编写的源程序。

#include <iostream>

using namespace std;

#define N 51

struct Node

{

       int x;

       int y;

};

int main()

{

    int n,m;

    int dx[4]={1,1,2,2};

    int dy[4]={-2,2,-1,1};

    int visit[N][N]={0};   

    Node q[N*N],cur,next;     // q为队列

    int  front,rear,i,x,y,t;        // front为队头指针,rear队尾指针

    cin>>n>>m;

    front=rear=0;                // 队列q初始化

    cur.x=1;  cur.y=1; 

    visit[1][1]=-1;               // 点(1,1)为出发点,无前驱结点

    q[rear++]=cur;            // 初始结点入队

    bool flag= false;          // 置搜索成功标志flag为假

    cout<<"结点访问顺序为:";

    while(rear!=front && !flag)   // 队列不为空

    {

              cur=q[front++];        // 队头元素出队

             cout<<"("<<cur.x<<","<<cur.y<<") -- ";

              if (cur.x==n && cur.y==m)

              {

                     flag=true;

                     x=n;  y=m;

                     cout<<endl;

                     cout<<"行走路径为:";

                     while (visit[x][y]!=-1)

                     {

                            cout<<"("<<x<<","<<y<<") <-- ";

                            t=visit[x][y];

                            x=t/100;

            &n

首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇彻底弄懂UTF-8、Unicode、宽字符.. 下一篇右值引用和移动语义

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目