300x250
인트로 그래프의 탐색 방법으로 DFS와 BFS가 대표적이다. 트리는 특정 조건을 만족하는 그래프이다. 따라서 트리에 BFS와 DFS 탐색 알고리즘을 적용할 수 있다. 본 포스팅에선 DFS에 기반한 이진 트리 탐색 알고리즘인 전위 순회(Preorder Traversal), 중위 순회(Inorder Traversal), 후위 순회(Postorder Traversal)를 다루려 한다. (+ 2021.09.01 추가 이진 트리의 순회 알고리즘을 소개하며 이진 트리와 이진 탐색 트리를 모두 소개하다 보니 전달하려는 의미가 모호해졌네요.일반적으로 이진 트리의 순회는 전위 중위 후위 순회가 있습니다. 물론 이진 탐색 트리도 일종의 이진 트리이기에 순회 가능합니다. 나아가 이진 탐색 트리는 "이진 탐색"에 기반한 추상..
인트로 그래프의 탐색 알고리즘인 BFS(Breadth First Search, 너비 우선 탐색)를 구현해보려 한다. DFS와 다르게 BFS는 주로 한 가지 목적으로 사용된다. 그것은 가중치가 없는 그래프의 최단 경로를 구할 때 사용된다. 본 포스팅에선 C# 기반 배열과 리스트(List)로 BFS를 구현하는 간단한 코드와 최단 경로 출력 코드를 소개하려 한다. 결론부터 말하면 Queue를 사용해서 BFS를 구현했다. DFS가 궁금하다면? DFS (Depth First Search, 깊이 우선 탐색) 알고리즘 [Algorithm] DFS (Depth First Search, 깊이 우선 탐색) 알고리즘 인트로 그래프의 탐색 알고리즘인 DFS(Depth First Search, 깊이 우선 탐색)를 구현해보려 한..
인트로 그래프 탐색 알고리즘인 BFS, DFS와 트리 탐색 알고리즘인 전위 중위 후위 순회를 정리하기 전에 배경지식인 트리와 그래프의 관계 그리고 특징을 정리하려 한다. 결론부터 말하면 트리는 특정 조건을 만족하는 그래프이다. 즉, 트리는 그래프이지만 그래프는 트리가 아니다. 그래프(Graph) 그래프는 현실에 존재하는 개체 간의 관계를 표현하는 하나의 표기법일 뿐이다. 현실에서도 그래프를 찾아볼 수 있으며 흔히 보는 지하철 노선도가 그래프이다. 기흥이라는 점이 개체, 기흥과 강남대를 이어주는 선이 관계이다. 컴퓨터공학적인 시선으로 그래프를 바라보면 개체는 노드(Node)로, 관계는 간선(Edge)으로 표현된다. 그래프도 여러 종류가 존재한다. 대표적으로 1) 무방향 그래프 (Undirected Grap..