너비우선탐색의구현

Esther·2023년 5월 20일
0

즐거운ㅋ코딩공부

목록 보기
6/8
// BFS는 큐를 사용하는것이 중요하다.!!

#include <iostream>
#include <vector>

using namespace std;

const int MAX = 100;

int n,m;
vector <int> myGraph[MAX];

void BFS(){
 // 큐에다가 넣고 인접한 것을 찾는 과정이라서 재귀가 필요없다
    
    queue<int> Queue;
     // Queue.push(x);
    //  x를 큐에 삽입
    // Queue.pop();
    // 큐의 맨 앞에 있는 원소를 제거
    // Queue.front();
    //  맨 앞에 있는 원소 반환
    // Queue.empty();
    //  비어있으면 true를 반환
    
    bool check[MAX] = {0,};
    //check[x]가 true면 방문한 것
    
    Queue.push(1);
    check[1] = true;
    
    while(!Queue.empty()){
    // 프론트 전 큐가 비어있는지 확인
    
    	int current = Queue.front();
        Queue.pop();
        
        cout << current << " ";
        
        for(int i=0;i<myGraph[current].size();i++){
     	   int next = myGraph[current][i];
           if(check[next] == false){
           check[next] = true;
           Queue.push(next);
           }
        }
   }
   
   
}

int main(){
	cin >> n >> m;
    int a,b;
    for(int i=0;i<m;i++){
   	 	cin >> a>> b;
    	myGraph[a].push_back(b);
    	myGraph[b].push_back(a);
        
     }
     BFS();
     
     return 0;
     
}
    
   



0개의 댓글