queue

H802·2025년 1월 23일

프로그래밍 개념

목록 보기
6/6

1. queue 생성

Queue<Integer> queue = new LinkedList<>();
  • BFS에 사용할 큐
  • queue는 선입선출(FIFO)구조이므로, BFS에 적합
  • 큐에 탐색할 노드를 저장 후, 하나씩 꺼내서 탐색

2. queue 시작노드 추가

queue.add(start);

3. 시작노드 방문 처리

visited[start] = true;

4. 큐가 비어있지않을 때까지 반복

while (!queue.isEmpty())

5. 큐에서 노드 꺼내기

📘 queue.poll

int node = queue.poll();
  • 큐에서 노드 하나를 꺼내서 그 노드에 연결된 다른 노드 탐색하게됨
  • queue.poll()은 노드를 꺼내면서 동시에 큐에서 제거

6. 모든 A 검사

for (int i = 0; i < n; i++)
  • i는 현재 노드와 연결된 다른 노드들을 검사하기 위한 변수
  • n은 총 검사할 모든 A의 개수

7. 연결 여부 및 방문 여부 확인

if(computers[node][i] == 1 && !visited[i])

8. 방문 처리

visited[i] = true;

9. 새로 탐색해야할 노드를 큐에 추가

queue.add(i);
  • 현재 노드와 연결된 새로운 노드인 i를 탐색하기위해 큐에 추가
profile
배운 내용 정리하기 위해 쓰는 블로그

0개의 댓글