码迷,mamicode.com
首页 > 其他好文 > 详细

第一次BFS尝试,仅仅练习一下:)

时间:2014-09-19 09:54:35      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:io   os   for   sp   on   c   ef   size   r   

#include <iostream>
#include<vector>
#include<list>
#include<queue>
#include<algorithm>
using namespace std;

typedef vector<list<int> > Graph;

void bfs(Graph p)
{
    bool visited[p.size()];
    for(int i=0;i!=(int)p.size();i++)
    {
        visited[i]=false;
    }

    queue<int> que;

    if(p.empty())
    {
        return;
    }

    que.push(0);
    while(!que.empty())
    {
        int visiting_point=que.front();
        que.pop();
        if(!visited[visiting_point])
        {
            cout<<visiting_point<<endl;
            visited[visiting_point]=true;

            for(list<int>::iterator iter=p[visiting_point].begin();
            iter!=p[visiting_point].end();iter++)
            {
                que.push(*iter);
            }
        }

    }
}


int main()
{
    Graph graph;
    list<int> list0;
    list0.push_back(2);
    list<int> list1;
    list1.push_back(2);
    list<int> list2;
    list2.push_back(0);
    list2.push_back(1);

    graph.push_back(list0);
    graph.push_back(list1);
    graph.push_back(list2);

    bfs(graph);

    return 0;
}

第一次BFS尝试,仅仅练习一下:)

标签:io   os   for   sp   on   c   ef   size   r   

原文地址:http://www.cnblogs.com/litengyao/p/3980630.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!