#DFS 정의
def dfs(graph, v, visited):
    # 현재 노드를 방문 처리
    visited[v] = True
    print(v, end=" ")
    # 현재 노드와 연결된 다른 노드를 재귀적으로 방문
    for i in graph[v]:
        if not visited[i]:
            dfs(graph,i,visited)

def dfs_iterative(start_v):
    discovered = []
    stack = [start_v]
    while stack :
        v = stack.pop()
    if v not in discovered:
        discovered.append(v)
        for w in graph[v]:
            stack.append(v)
    return discovered

# 2차원 리스트
graph = [
    [],
    [2,3,8],
    [1,7],
    [1,4,5],
    [3,5],
    [3,4],
    [7],
    [2,6,8],
    [1,7]
]
# DFS

#각 노드가 방문된 정보를 표현
visited =[False]*9
dfs(graph,1,visited)