연결된 곳을 찾을 때 가까운 곳부터 볼까, 한 길을 끝까지 갈까?
역에서 다른 역까지 몇 번 갈아타야 하는지 찾는다고 하자. 출발역과 바로 연결된 역부터 살핀 뒤 그다음 역을 보면 가장 적은 이동 횟수를 찾을 수 있다. 반면 연결된 역을 하나씩 끝까지 따라가면 어딘가에 도달할 수 있는지 살피기는 좋지만, 처음 찾은 길이 가장 짧다고 말할 수는 없다.대상과 대상 사이의 연결을 나타내는 자료구조를 그래프(graph)라고 한다. 역은 정점(vertex), 두 역 사이의 연결은 간선(edge)으로 표현한다. 같은 연결 정보를 두고도 어떤 순서로 방문하느냐에 따라 먼저 얻는 답이 달라진다.‘연결됐다’의 뜻부터 정해야 한다다음 연결을 보자. 여기서는 화살표 방향으로만 이동할 수 있다고 하자.A → BA → CB → DC → DD → EA에서 D로 가는 길은 A→B→D와 A→C→D..