728x90
반응형
그래프(Graph) 완전 이해하기
이전 글에서는 트리(Tree)에 대해 알아봤습니다.
이번에는 복잡한 관계를 표현하는 자료구조, 그래프(Graph) 에 대해 자세히 정리해봅니다.
1. 그래프란?
그래프는 정점(Vertex)과 간선(Edge)으로 이루어진 자료구조입니다.
- 정점(Vertex): 데이터의 단위 (노드라고도 함)
- 간선(Edge): 정점과 정점을 연결하는 선
- 방향 그래프(Directed Graph)와 무방향 그래프(Undirected Graph)가 있음
2. 그래프의 기본 용어
용어 설명
정점(Vertex) | 데이터를 저장하는 노드 |
간선(Edge) | 두 정점을 연결하는 선 |
인접(Adjacent) | 두 정점이 간선으로 직접 연결된 관계 |
차수(Degree) | 정점에 연결된 간선의 수 |
경로(Path) | 정점들을 순서대로 따라간 길 |
사이클(Cycle) | 시작 정점으로 다시 돌아오는 경로 |
3. 그래프 표현 방법
방법 설명
인접 행렬(Adjacency Matrix) | 2차원 배열로 정점 간 연결 여부 표시 |
인접 리스트(Adjacency List) | 각 정점마다 연결된 정점 리스트 저장 |
인접 행렬 예시
int[,] graph = new int[4, 4]
{
{0, 1, 0, 0},
{1, 0, 1, 1},
{0, 1, 0, 1},
{0, 1, 1, 0}
};
인접 리스트 예시
using System.Collections.Generic;
List<int>[] graph = new List<int>[4];
for (int i = 0; i < 4; i++)
{
graph[i] = new List<int>();
}
graph[0].Add(1);
graph[1].Add(0); graph[1].Add(2); graph[1].Add(3);
graph[2].Add(1); graph[2].Add(3);
graph[3].Add(1); graph[3].Add(2);
4. 실생활 예시로 이해하기
- 그래프 = 지하철 노선도
- 각 역(정점)이 노선(간선)으로 연결됨
- 그래프 = 소셜 네트워크
- 사용자(정점)와 친구 관계(간선)를 표현
5. 그래프의 활용 사례
사용 예시 설명
네트워크 경로 찾기 | 인터넷 라우팅, 네트워크 최단 경로 탐색 |
소셜 네트워크 분석 | 친구 추천, 커뮤니티 분석 |
지도 및 내비게이션 | 최단 거리, 최단 시간 경로 탐색 |
이번 글에서는 그래프(Graph) 의 개념, 기본 용어, 표현 방법, C# 코드 예시를 정리했습니다.
- 정점과 간선으로 다양한 관계를 표현
- 인접 행렬과 인접 리스트로 그래프 구현 가능
- 네트워크, 소셜 미디어, 지도 등 다양한 분야에서 활용
728x90
반응형
'개발이야기' 카테고리의 다른 글
자료구조 시리즈 11편 (6) | 2025.04.23 |
---|---|
자료구조 시리즈 10편 (2) | 2025.04.22 |
자료구조 시리즈 8편 (2) | 2025.04.22 |
자료구조 시리즈 7편 (2) | 2025.04.22 |
자료구조 시리즈 6편 (2) | 2025.04.21 |