[Do it_java]
11-2. 그래프의 표현
혜리노베이션
2023. 6. 5. 19:33
256P ~278P
강의: 08-1
< 그래프의 표현>
■ 에지 리스트
- 에지를 중심으로 그래프를 표현
✔ 가중치가 없는 그래프 표현
- 그래프는 출발 노드와 도착 노드만 표현
- 배열의 행은 2개면 충분
- 노드는 여러 자료형을 사용할 수 있다
예) Integer형
✔ 가중치가 있는 그래프 표현
- 배열의 행을 3개로 늘린다
- 3번째 행에 가중치를 저장한다
* 방향이 없는 그래프인 경우에는 시작 노드를 두지 않고 시작
** 특정 노드와 관련되어 있는 에지를 탐색하기 어렵다
■ 인접 행렬
- 2차원 배열 자료구조를 이용하여 그래프를 표현
- 노드 중심 그래프 표현
✔ 가중치가 없는 그래프 표현
✔ 가중치가 있는 그래프 표현
*N번 접근을 해야 하므로 시간복잡도가 좋진 않다
■ 인접 리스트 ❗❗❗
- 노드 개수만큼 ArrayList를 선언
- 자료형은 경우에 맞게 사용
✔ 가중치가 없는 그래프 표현
- ArrayList<integer>[5]로 선언 *배열로 선언
- 인접리스트에는 N번 노드와 연결되어 있는 노드를
배열의 위치 N에 연결된 노드 개수만큼 배열을 연결하는 방식으로 표현
✔ 가중치가 있는 그래프 표현
- Node를 생성해야 함
- 노드와 연결되어 있는 에지를 탐색하는 시간이 매우 뛰어나다