Queue
-
[알고리즘] BFS(Breadth - First Search), 송아지 찾기알고리즘 2023. 4. 13. 15:31
BFS(Breadth-First Search) 알고리즘은 그래프 탐색을 위한 대표적인 알고리즘 중 하나이다. 그래프를 탐색하면서 같은 레벨에 있는 노드를 모두 방문한 후 다음 레벨로 이동하여 탐색하는 방법을 사용한다. 이 알고리즘은 그래프에서 최단 경로를 찾는 문제를 푸는 데 활용된다. BFS 알고리즘은 다음과 같이 동작한다. 시작 노드를 큐(queue)에 추가. 큐에서 노드를 하나 꺼내어 방문. 해당 노드와 인접한 노드들 중 방문하지 않은 노드를 모두 큐에 추가. 큐가 빌 때까지 2-3 단계를 반복. 이 알고리즘을 구현할 때는 큐를 사용하여 노드를 관리하며, 방문한 노드를 표시하기 위한 visited 배열을 사용. BFS 알고리즘의 시간 복잡도는 노드의 수를 V, 간선의 수를 E라고 할 때 O(V+E)..
-
[자료구조] Queue알고리즘 2023. 4. 12. 21:21
자바(Java)에서 Queue는 데이터를 순서대로 관리하기 위한 자료구조 중 하나이다. 이 자료구조는 선입선출(FIFO, First-In-First-Out)의 원칙을 따르며, 데이터가 들어온 순서대로 처리된다. Java에서 Queue는 java.util 패키지에 속해 있으며, 다양한 구현체를 제공한다. 대표적인 Queue 구현체로는 LinkedList, ArrayDeque, PriorityQueue 등이 있다. LinkedList는 연결 리스트를 기반으로 한 Queue 구현체이다. 요소를 추가하거나 삭제할 때마다 리스트의 노드를 생성하거나 제거하기 때문에 처리 속도가 느리지만, 요소를 삽입하거나 삭제하는 작업에는 빠르게 대응할 수 있다. ArrayDeque는 배열을 기반으로 한 Queue 구현체이다. Q..