▶그래프
그래프는 정점들의 집합 V와 간선들의 집합 E로 이루어진 자료구조입니다.
▶그래프 표현 방법
그래프를 표현하는 방법으로 인접 행렬과 인접 리스트가 있습니다.
정점의 개수가 N개인 그래프를 인접 행렬로 표현하려면 (N+1) x (N+1) 크기의 2차원 배열이 필요합니다.
무 방향 그래프인 경우에 1번 정점과 2번 정점이 연결되어있다면 (1,2)와 (2,1)에 모두 1을 저장해 두 정점이 연결되었음을 표현합니다. 만약 방향 그래프인 경우에 1번 정점에서 2번 정점으로 화살표가 그려져있다면 (1,2)에만 1을 저장하는 방식입니다.
int adj[5][5] = {0,};
// 1번 정점과 2번 정점이 연결된 경우
adj[1][2] = 1;
adj[2][1] = 1;
정점의 개수가 N개인 그래프를 인접 리스트로 표현하려면 N+1 크기의 1차원 벡터가 필요합니다.
각 정점에서 연결되어있는 정점들의 번호를 동적으로 할당하여 저장하는 방식으로 표현합니다.
vector<int> adj[5];
// 1번 정점과 2번 정점이 연결된 경우
adj[1].push_back(2);
adj[2].push_back(1);
'□ 이론 > 자료구조' 카테고리의 다른 글
해싱(Hashing)에 대하여 (0) | 2020.05.28 |
---|---|
힙(Heap) (0) | 2019.05.31 |
연결 리스트와 배열 (Linked list) (0) | 2019.05.31 |