새소식

컴퓨터공학 💻/자료구조

[자료구조] 그래프(Graph) 표현 | 인접 행렬, 인접 리스트, 인접 배열

  • -
그래프(Graph) 표현

그래프의 표현 방법에는 인접 행렬, 인접 리스트, 인접 배열이 존재합니다.

 

인접 행렬(adjacency matrix) 방법

간선 (i, j)가 존재하면 원소(i, j) = 1을 저장하며 그렇지 않으면 원소(i, j) = 0이 됩니다.

정점의 총 개수가 N이라고 할 때 인접 행렬은 N X N 행렬입니다.

무방향 그래프의 경우 대각선 행렬을 중심으로 대칭적이지만 방향 그래프의 경우 반드시 대칭적이지 않고 비대칭일 수도 있습니다. 

또한 가중치가 있는 그래프의 경우 원소(i, j)는 1 대신에 가중치를 저장합니다.

 

인접 리스트(adjacency list) 방법

정점의 총 개수가 N이라고 할 때 각 정점에 인접한 정점들을 N개의 연결리스트로 표현한 방법입니다.

i번째 리스트는 정점 i에 인접한 정점들을 리스트로 연결해 놓은 것입니다.

또한 가중치가 있는 그래프의 경우 리스트에 가중치도 저장합니다.

(무방향 그래프인 경우 하나의 간선 당 노드가 2개씩 생기며, 방향 그래프인 경우 하나의 간선 당 노드가 1개씩 생깁니다)

 

인접 배열(adjacency array) 방법

정점의 총 개수가 N이라고 할 때 N개의 연결 배열로 표현합니다.

i번째 배열은 정점 i에 인접한 정점들의 집합을 나타냅니다.

또한 가중치가 있는 그래프의 경우 리스트에 가중치도 저장합니다.

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.