자료구조-알고리즘

자료구조-알고리즘

[자료구조] 그래프(Graph)

그래프란? 그래프는 정점(Node, Vertex)와 간선(Edge)로 이루어진 자료구조이며, 방향성이 있는 방향 그래프(Directed Graph)와 방향성이 없는 무방향 그래프(Undirected Graph)로 나뉜다. 더불어 정점과 정점을 잇는 간선에는 가중치(Weight)가 존재할 수 있다. 트리(Tree)또한 그래프의 일종이지만, 그래프는 트리와 달리 정점마다 간선이 존재하지 않을 수 있으며, 루트, 부모, 자식 노드의 개념이 존재하지 않는다. 그래프 자료구조는 컴퓨터 네트워크, 교통 시스템, 소셜 미디어와 같은 다양한 현실 세계의 문제를 모델링하는데 사용된다. 그래프 관련 용어 정점(Node, Vertext) - 데이터를 나타냄 간선(Edge) - 두 정점의 관계를 나타냄 차수(Degree) -..

자료구조-알고리즘

[알고리즘] DFS / BFS

DFS / BFS는 그래프 탐색 알고리즘중 하나 탐색이란 수 많은 데이터는 원하는 데이터를 찾는 과정 깊이 우선 탐색(DFS, Depth - First Search) - DFS는 그래프와 트리의 깊은 부분을 우선적으로 탐색하는 알고리즘 - 현재 정점(노드)에서 연결된 정점(노드) 하나를 골라 깊이 끝까지 탐색을 진행하며, 끝까지 진행한 경우 백트래킹을 하여 다음 노드로 탐색을 진행한다. - Stack 혹은 재귀 함수를 이용하여 구현한다. - 모든 정점을 방문할 때 유리하게 사용하며, 경우의수, 순열, 조합 문제에서 많이 사용한다. - 모든 정점을 방문할 필요가 없거나 최단 거리를 구하는 경우에는 너비 우선 탐색(BFS)가 유리하다. 장점 - 현 경로상의 노드들만 기억하므로, 저장공간 수요가 비교적 적다...

turtleDev
'자료구조-알고리즘' 카테고리의 글 목록