1. Graph?
- 두 대상 사이 관계를 나타낼 수 있는 자료구조
- 아래의 그림처럼 동그란 점들이 Node, 점끼리 이어진 선들이 edge가 됨.

1.1. wark?
- 두 Node을 잇는 edge가 존재하는 경우 둘을 인접한다고 정의한다.
-- 인접한 꼭짓점을 따라 이동한 족적을 Walk라고 한다.
- 시작점과 끝점이 동일한 경우 닫힌 walk라고 하며,
- 다른경우 열린 walk라고 한다.
1.2. path
- walk 가운데 중복된 꼭짓점이 존재하지 않는 것을 path라고한다.
1.3. cycle
- 닫힌 walk와 path의 조건을 모두 만족하는 경우 이를 cycle이라고 한다.
ex) 위의 그림에선 A - B - D - A 가 된다.
2. Directed Graph
- 엣지에 방향이 존재하는 경우 Directed Graph(유향 그래프), 방향이 존재하지 않으면 Undirected Graph(무향 그래프)라한다.

3. Graph 구현
3.1. 인접행렬로 표현하기

- 다음 그림과 같이 A는 B,D와 인접하기에 B,D에 1을 할당하고,
- B는 A,D,C와 인접하기에 A,C,D에 1을 할당하는 식으로 Matrix을 작성한다.
- 만약 Directed Graph라면 다음과 같이 표기하면 된다.

- 여기서 각 엣지에 가중치를 부여한다면 다음과 같이 작성이 가능하다.

4. Code 구현
Graph = [[0,4,0,0,0],
[0,0,2,1,0],
[0,0,0,0,8],
[5,0,0,0,0],
[0,0,0,10,0]]
Graph = {'A' : [('B',4)],
'B' : [('C',2),('D',1)],
'C' : [('E',8)],
'D' : [('A',5)],
'E' : [('D',10)]}
'CS Study > CLRS (자료구조 | 알고리즘)' 카테고리의 다른 글
[CLRS] [20-3] DFS(Depth-first search) (0) | 2024.11.30 |
---|---|
[CLRS] [20-2] BFS(Breadth-first search) (0) | 2024.11.30 |
[CLRS] [19] disjoint set(Union-Find) (0) | 2024.11.30 |
[CLRS] [17][18] B-tree (2) | 2024.11.30 |
[CLRS] [16] Amortized Analysis (분할 상환 분석) (0) | 2024.11.29 |
1. Graph?
- 두 대상 사이 관계를 나타낼 수 있는 자료구조
- 아래의 그림처럼 동그란 점들이 Node, 점끼리 이어진 선들이 edge가 됨.

1.1. wark?
- 두 Node을 잇는 edge가 존재하는 경우 둘을 인접한다고 정의한다.
-- 인접한 꼭짓점을 따라 이동한 족적을 Walk라고 한다.
- 시작점과 끝점이 동일한 경우 닫힌 walk라고 하며,
- 다른경우 열린 walk라고 한다.
1.2. path
- walk 가운데 중복된 꼭짓점이 존재하지 않는 것을 path라고한다.
1.3. cycle
- 닫힌 walk와 path의 조건을 모두 만족하는 경우 이를 cycle이라고 한다.
ex) 위의 그림에선 A - B - D - A 가 된다.
2. Directed Graph
- 엣지에 방향이 존재하는 경우 Directed Graph(유향 그래프), 방향이 존재하지 않으면 Undirected Graph(무향 그래프)라한다.

3. Graph 구현
3.1. 인접행렬로 표현하기

- 다음 그림과 같이 A는 B,D와 인접하기에 B,D에 1을 할당하고,
- B는 A,D,C와 인접하기에 A,C,D에 1을 할당하는 식으로 Matrix을 작성한다.
- 만약 Directed Graph라면 다음과 같이 표기하면 된다.

- 여기서 각 엣지에 가중치를 부여한다면 다음과 같이 작성이 가능하다.

4. Code 구현
Graph = [[0,4,0,0,0],
[0,0,2,1,0],
[0,0,0,0,8],
[5,0,0,0,0],
[0,0,0,10,0]]
Graph = {'A' : [('B',4)],
'B' : [('C',2),('D',1)],
'C' : [('E',8)],
'D' : [('A',5)],
'E' : [('D',10)]}
'CS Study > CLRS (자료구조 | 알고리즘)' 카테고리의 다른 글
[CLRS] [20-3] DFS(Depth-first search) (0) | 2024.11.30 |
---|---|
[CLRS] [20-2] BFS(Breadth-first search) (0) | 2024.11.30 |
[CLRS] [19] disjoint set(Union-Find) (0) | 2024.11.30 |
[CLRS] [17][18] B-tree (2) | 2024.11.30 |
[CLRS] [16] Amortized Analysis (분할 상환 분석) (0) | 2024.11.29 |