그래프 구현 방법
1. 그래프 클래스 정의
-
그래프는 노드와 간선을 사용하여 네트워크 구조를 모델링하는 자료구조입니다.
-
Graph
클래스는 노드와 그 인접 노드를 저장하기 위한 딕셔너리를 포함합니다.
그래프 클래스 정의 예시
class Graph:
def __init__(self):
self.graph = {} # 노드와 그 인접 노드를 저장할 딕셔너리
2. 간선 추가 메소드
-
add_edge
메소드는 두 노드 사이에 양방향 간선을 추가합니다. -
각 노드가 그래프에 없는 경우, 노드를 추가하고 빈 리스트를 할당합니다.
간선 추가 메소드 예시
def add_edge(self, node1, node2):
if node1 not in self.graph:
self.graph[node1] = []
if node2 not in self.graph:
self.graph[node2] = []
self.graph[node1].append(node2)
self.graph[node2].append(node1)
3. 그래프 출력 메소드
-
display
메소드는 그래프의 내용을 출력합니다. -
각 노드와 그에 인접한 노드들을 출력하여 그래프의 구조를 보여줍니다.
그래프 출력 메소드 예시
def display(self):
for node in self.graph:
print(f"{node} -> {self.graph[node]}")
4. 그래프 객체 생성 및 사용
-
Graph
클래스의 인스턴스를 생성하고, 간선을 추가하여 그래프를 구성합니다. -
display
메소드를 호출하여 그래프의 구조를 확인합니다.
그래프 객체 생성 및 사용 예시
# 그래프 객체 생성
g = Graph()
# 간선 추가
g.add_edge('A', 'B')
g.add_edge('A', 'C')
g.add_edge('B', 'C')
g.add_edge('B', 'D')
# 그래프 출력
g.display()
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!