트리를 공부하면서 폴더나 조직도처럼 위아래 관계가 있는 데이터를 표현했다. 트리에서는 모든 노드가 부모를 딱 하나만 가지고, 길을 따라가다 제자리로 돌아오는 일도 없다. 그런데 현실의 관계가 모두 이렇게 깔끔한 위아래는 아니다. 지하철 노선도에서 한 역은 여러 역과 이어지고, 순환선을 타면 출발한 역으로 돌아온다. SNS의 친구 관계에는 누가 위고 누가 아래라는 개념조차 없다. 이렇게 위아래 없이 그물처럼 얽힌 관계를 표현하기 위해 등장한 것이 그래프(Graph)다.사실 트리도 그래프의 한 종류다. 그래프에 "부모는 하나", "제자리로 돌아오는 길(사이클)은 없음"이라는 제약을 건 것이 트리였다. 그래프는 그 제약을 풀어버린, 가장 자유로운 형태의 자료구조다.그래프의 용어는 트리와 비슷하다. 동그라미 하..