[파이썬] 그래프의 개념과 기본 용어

그래프는 현실 세계의 다양한 상황을 나타내고 분석하기 위한 중요한 도구입니다. 이 글에서는 그래프의 개념과 기본 용어에 대해 알아보겠습니다.

그래프란 무엇인가요?

그래프는 정점(Vertex)과 간선(Edge)으로 이루어진 추상적인 개념입니다. 정점은 그래프에서의 위치를 나타내며, 간선은 정점들을 연결하는 선입니다. 그래프는 다양한 형태와 종류가 있으며, 현실 세계의 다양한 문제를 그래프로 표현할 수 있습니다.

그래프의 기본 용어

그래프의 종류

그래프는 방향성과 사이클의 유무에 따라 다양한 종류로 나눌 수 있습니다. 가장 일반적인 그래프 종류는 다음과 같습니다.

# 간단한 무방향 그래프 예제

class Graph:
    def __init__(self):
        self.vertices = {}
    
    def add_vertex(self, vertex):
        if vertex not in self.vertices:
            self.vertices[vertex] = []

    def add_edge(self, v1, v2):
        if v1 in self.vertices and v2 in self.vertices:
            self.vertices[v1].append(v2)
            self.vertices[v2].append(v1)
    
    def get_adjacent_vertices(self, vertex):
        if vertex in self.vertices:
            return self.vertices[vertex]

# 그래프 초기화
g = Graph()
g.add_vertex('A')
g.add_vertex('B')
g.add_vertex('C')
g.add_vertex('D')

# 간선 추가
g.add_edge('A', 'B')
g.add_edge('B', 'C')
g.add_edge('C', 'D')
g.add_edge('D', 'A')

# 인접 정점 확인
adjacent_vertices = g.get_adjacent_vertices('A')
print(adjacent_vertices)  # ['B', 'D']

위 예제는 Python으로 구현된 간단한 무방향 그래프입니다.

이제 그래프의 개념과 기본 용어에 대해 알게되었습니다. 그래프는 다양한 문제를 해결하기 위한 강력한 도구로 활용될 수 있으며, 알고리즘과 데이터 구조에서 핵심적인 역할을 수행합니다. 다음 글에서는 그래프 알고리즘에 대해 자세히 알아보겠습니다.