# -*- coding: utf-8 -*-
"""
p, 136
- [ 인접 리스트 ]는 '연결 리스트' 자료구조를 이용해 구현
- [ 파이썬은 ] 기본 자료형인 리스트 자료형이 append() 메소드를 제공하므로
 전통적인  프로그래밍 언어에서의 배열과 연결 리스트의 기능을 [ 모두 기본으로 제공 ]
 
- 특정한 노드와 연결된 [ 모든 ] 인접 노드를 순회해야 하는 경우,
"** 인접 리스트 방식 ** "이 "인접 행렬 방식"에 비해 [ 메모리 공간의 낭비 ]가 적다.
 <알아 둘 점>
 - 파이썬으로 [ 인접 리스트를 이용해 "그래프를 표현" ]하고자 할때에도
  [ 단순히 2차원 리스트를 이용 ]하면 된다는 점!
  
"""


# 행(Row)이 3개인[ 2차원 리스트 ]로 "인접 리스트" 표현
graph = [[] for _ in range(3)]

# '노드 0에' 연결된 노드 정보 저장 (노드, 거리)
graph[0].append((1, 7))
graph[0].append((2, 5))

# '노드 1에' 연결된 노드 정보 저장 (노드, 거리)
graph[1].append((0, 7))

# '노드 2에' 연결된 노드 정보 저장 (노드, 거리)
graph[2].append((0, 5))

print(graph)