728x90
bfs ํจ์์์๋
(1) push()ํ์๋ง์ check=true๋ก ๋ง๋ค์ด์ฃผ๊ณ
(2) ํ๊ฐ ๋น์ด์์ง ์๋ ํ ๊ณ์ ๋ฐ๋ณตํ ๋๋ง๋ค
front()๋ฅผ pop() ํด์ฃผ๋ ๊ฒ์ด ๊ฝค๋ ์ค์ํด๋ณด์ธ๋ค.
๊ทธ๋ฌ๋ค๋ณด๋ ์ฒซ๋ ธ๋๋ ๊ทธ์ผ๋ง๋ก ํ์ ๋ค์ด๊ฐ์๋ง์(push) ๋น ์ ธ๋์ค๊ฒ(pop)๊ฒ ๋๋ค.
main ํจ์์์๋
์ฐจ๋ถํ๊ฒ ์ธ์ ๋ฆฌ์คํธ๋ฅผ ๊ตฌํํด์ผํ๋ค.
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
vector<int> numbers[7];
int check[7];
void bfs(int start)
{
queue<int> que;
que.push(start);
check[start] = true;
while (!que.empty())
{
int x =que.front();
que.pop();
cout << x << endl;
for (int i = 0; i < numbers[x].size(); i++)
{
int z = numbers[x][i];
if (!check[z])
{
que.push(z);
check[z] = true;
}
}
}
}
int main()
{
numbers[1].push_back(2);
numbers[2].push_back(1);
numbers[1].push_back(3);
numbers[3].push_back(1);
numbers[2].push_back(3);
numbers[3].push_back(2);
numbers[2].push_back(4);
numbers[4].push_back(2);
numbers[2].push_back(5);
numbers[5].push_back(2);
numbers[3].push_back(6);
numbers[6].push_back(3);
numbers[3].push_back(7);
numbers[7].push_back(3);
bfs(1);
return 0;
}
์ถ๋ ฅ
1234567
728x90
'์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ > ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์์ ๋น ๋ฅด๊ฒ ์ฐพ๊ธฐ, sqrt (), ์๋ผํ ์คํ ๋ค์ค์ ์ฒด + pow() (0) | 2022.01.09 |
---|---|
์ด์งํ์ ํต์ฌ์ฝ๋ (0) | 2022.01.04 |
๋ฐฐ์ด ํ์ , ์ ์ ๋ฐฐ์ด ๋ด์์ ํน์ ์์๋ฅผ ์ ํํ ์์น๋ก ์ด๋ํ๊ณ ์ถ์ ๋ (0) | 2021.12.15 |
[c++] ์ฝ์ ์ ๋ ฌ (0) | 2021.09.21 |
[c++] ๋ฒ๋ธ์ ๋ ฌ (0) | 2021.09.21 |