그래프(Graph)란?
그래프는 여러 노드(정점)들이 간선으로 연결된 자료 구조입니다.
그래프는 네트워크 구조를 모델링하는 데 매우 유용하며, 다양한 현실 세계 문제를 해결하는 데 사용됩니다.
예를 들어, 소셜 네트워크, 컴퓨터 네트워크, 도로망 등이 그래프로 표현될 수 있습니다.
핵심 용어
-
노드(Node) / 정점(Vertex)
:-
그래프의 기본 요소로, 위치를 나타냅니다.
-
예: 도시, 지점, 컴퓨터 네트워크의 개별 컴퓨터 등.
-
-
간선(Edge)
:-
두 노드를 연결하는 선입니다.
-
간선은 '무방향'(양 노드 사이를 양방향으로 이동할 수 있음) 또는 '방향성'(한 방향으로만 이동 가능)이 있을 수 있습니다.
-
-
가중치(Weight) / 비용(Cost)
:-
간선에 할당된 '가중치'는 두 노드 간의 이동 비용이나 거리 등을 나타냅니다.
-
모든 간선에 가중치가 있어야 하는 것은 아닙니다.
-
-
인접리스트(Adjacency List)
:-
각 노드에 연결된 다른 노드의 목록을 저장하는 방식입니다.
-
메모리 효율적이며, 특정 노드에 직접 연결된 노드를 찾는 데 유용합니다.
-
-
인접행렬(Adjacency Matrix)
:-
2차원 배열을 사용해 노드 간의 연결 관계를 나타냅니다.
-
노드 간의 연결 여부를 빠르게 확인할 수 있지만, 메모리를 더 많이 사용합니다.
-
-
방향 그래프(Directed Graph)
:-
간선에 방향성이 있는 그래프입니다.
-
예: 웹 페이지 간의 링크, 일방통행 도로.
-
-
무방향 그래프(Undirected Graph)
:-
간선에 방향성이 없는 그래프입니다.
-
예: 페이스북의 친구 관계, 양방향 도로.
-
-
사이클(Cycle)
:-
노드들이 순환하여 연결된 구조입니다.
-
사이클이 없는 그래프를 '비순환 그래프'라고 합니다.
-
-
연결(Connected)
:-
그래프 내의 모든 노드가 서로 직접적이거나 간접적으로 연결되어 있을 때, 그 그래프는 '연결 그래프'라고 합니다.
-
만약 어떤 노드에서 시작해 다른 모든 노드에 도달할 수 있다면, 그 그래프는 완전히 연결되어 있다고 할 수 있습니다.
-
-
트리(Tree)
:-
사이클이 없는 연결 그래프입니다.
-
모든 트리는 그래프이지만, 모든 그래프가 트리는 아닙니다.
-
트리는 계층적인 구조를 나타내는 데 자주 사용됩니다.
-
가이드라인
AI 튜터
배포
디자인
업로드
수업 노트
즐겨찾기
도움말