배열을 이용한 그래프 자료구조 구현하기
그래프는 정점들과 정점들을 연결하는 간선들로 이루어진 자료구조입니다. 이번에는 배열을 이용하여 그래프 자료구조를 구현해 보겠습니다.
그래프 클래스 구현하기
class Graph:
def __init__(self, V):
self.V = V
self.adj_list = [[] for _ in range(V)]
def add_edge(self, u, v):
self.adj_list[u].append(v)
self.adj_list[v].append(u)
def print_graph(self):
for i in range(self.V):
print("정점", i, "에 연결된 정점들:")
for v in self.adj_list[i]:
print(v, end=" ")
print()
그래프 객체 생성 및 사용 예시
g = Graph(5)
g.add_edge(0, 1)
g.add_edge(0, 4)
g.add_edge(1, 2)
g.add_edge(1, 3)
g.add_edge(1, 4)
g.add_edge(2, 3)
g.add_edge(3, 4)
g.print_graph()
출력 예시
정점 0 에 연결된 정점들:
1 4
정점 1 에 연결된 정점들:
0 2 3 4
정점 2 에 연결된 정점들:
1 3
정점 3 에 연결된 정점들:
1 2 4
정점 4 에 연결된 정점들:
0 1 3
결론
배열을 이용하여 그래프 자료구조를 구현하는 방법을 살펴보았습니다. 이러한 구현은 간단하고 직관적이며, 그래프의 연결 상태를 효율적으로 저장하고 조회할 수 있습니다.