깊이우선탐색

전위 순회는 루트-왼쪽-오른쪽 중위 순회는 왼쪽-루트-오른쪽 후위 순회는 왼쪽-오른쪽-루트 위와 같은 순서로 트리의 노드를 방문하여 출력하는 문제이다. 이진트리이기 때문에 왼쪽, 오른쪽의 노드만을 가지며 이를 구현하는 class를 만들어 활용하면 문제를 쉽게 풀 수 있다. 다음은 Java로 작성한 코드이다. import java.util.ArrayList; import java.util.Iterator; import java.util.Scanner; public class traversal { static class node{ String value; String left; String right; public node(String v, String l, String r) { value = v; left..
깊이 우선 탐색 (Depth-First Search, DFS) 깊이 우선 탐색은 직관적인 그래프 순회 방식이다. 임의의 시작 노드를 설정하고 간선을 따라 이동해 가며 도달 가능한 모든 노드를 처리한다. 더 이상 갈 수 없는 노드까지 탐색한 후, 이전노드로 돌아가 그래프의 다른 부분을 탐색하기 시작한다. 방문했던 노드를 기록하므로 각 노드는 한 번씩만 처리된다. 1번 노드를 시작으로 정하고, 더 이상 갈 수 없을 때까지 순회한다. 즉 1 -> 2 -> 3 -> 5 순으로 방문한 뒤, 다시 1번 노드로 돌아간다. ( 2번 노드는 이미 방문한 노드이기 때문에 다시 방문하지 않는다. ) 그런 다음 방문하지 않는 노드인 4번 노드를 방문한다. DFS 구현 import java.util.ArrayList; impo..
hvv_an
'깊이우선탐색' 태그의 글 목록