그래프
비선형 문제를 다룰 수 있는 자료구조
관계에 특화된 자료구조로 정점(Vertex)와 간선(Edge)으로 구성되어 있다.
정점 : 고유하게 식별되는 객체
간선 : 정점간의 관계
그래프의 종류
용어
인접 (Adjacent) | 간선으로 연결된 정점끼리 인접하다고 표현한다. |
부속 (Incident) | 간선은 연결된 정점에 부속되어 있다고 한다. |
차수 (Degree) | 정점에 부속되어 있는 간선의 수. |
진입 차수 | 정점에 들어오는 방향의 간선의 수. |
진출 차수 | 정점으로부터 나가는 방향의 간선의 수. |
경로 (Path) | 한 정점에서 다른 정점까지 간선으로 연결된 정점을 순서대로 나열한 리스트. |
경로의 길이 | 경로를 구성하는 간선의 수. |
단순 경로 | 모두 다른 정점으로 구성된 경로. |
사이클 (Cycle) | 단순 경로 중 경로의 시작 정점과 마지막 정점이 같은 경로. |
연결 (Connected) | 경로가 있으면 정점끼리 연결되었다고 표현한다. |
순회
한 정점에서 시작해 그래프에 모든 정점을 한 번씩 방문하는 것
깊이 우선 탐색 (Depth First Search)
stack을 사용한다.
너비 우선 탐색 (Breadth First Search)
queue를 사용한다.
728x90
'Program > C (C++,C#)' 카테고리의 다른 글
[C++] 힙 (Heap) (0) | 2022.07.06 |
---|---|
[C++] 트리 (0) | 2022.07.06 |
[C++] 이중 원형 연결 리스트 (LinkedList) 만들기 (0) | 2022.06.26 |
[C++] 스택 / 큐 (0) | 2022.06.24 |
[C++] 리스트 (0) | 2022.06.21 |