그래프(Graph)는 다른 자료구조와 달리 **관계(relationship)**를 표현하는 데 강점이 있습니다. 단순히 데이터를 저장하는 게 아니라, **정점(Vertex)**과 **간선(Edge)**을 통해 데이터 간의 연결을 나타내죠.


📌 그래프 기본 개념


📊 그래프 표현 방식

표현 방식 특징 예시 (JavaScript)
인접 행렬(Adjacency Matrix) 2차원 배열로 표현, 공간 많이 차지 matrix[a][b] = 1
인접 리스트(Adjacency List) 각 정점마다 연결된 정점 리스트 graph[a].push(b)
// 인접 리스트 예시
const graph = {
  A: ["B", "C"],
  B: ["A", "D"],
  C: ["A", "D"],
  D: ["B", "C"]
};


🔍 그래프 탐색 알고리즘

// BFS 예시
function bfs(graph, start) {
  let visited = new Set();
  let queue = [start];

  while (queue.length > 0) {
    let node = queue.shift();
    if (!visited.has(node)) {
      visited.add(node);
      console.log(node); // 방문 처리
      queue.push(...graph[node]);
    }
  }
}

bfs(graph, "A"); // A → B → C → D


🌍 그래프 활용 예시