처음부터 차근차근

[Javascript] 인접행렬, 인접 리스트 구현 방법 본문

CS/자료구조

[Javascript] 인접행렬, 인접 리스트 구현 방법

HangJu_95 2023. 11. 15. 22:22
728x90

인접 행렬 구현 방법

자바스크립트는 다른 언어와는 다르게 2차원 배열을 구현하는 방법이 없다.

(예시로 a[i][j] 이런식으로 구현할 수 없다)

따라서 Array.from 메서드를 사용하여 구현해줘야 한다.

function Matrix(v) {
  // 자바스크립트에는 2차원 배열을 만들 때 a[0][0] 이런식으로는 만들 수 없다.
  // 따라서 2차원 배열을 만들 경우 이렇게 만들어야 한다.
  const a = Array.from(Array(10), () => new Array(10).fill(0));
  const visited = Array.from(Array(10).fill(0));
  a[1][2] = 1;
  a[1][3] = 1;
  a[3][4] = 1;
  a[2][1] = 1;
  a[3][1] = 1;
  a[4][1] = 1;
  console.log(visited);
  console.log(a);
}

 

인접 리스트 구현 방법

Javascript는 vector 대신 Array를 사용하면 편리하다.

// 정점의 개수
let max: number = 5;
// 인접 리스트를 객체로 만들기 위한 준비
let adjList = {};

// 정점의 갯수만큼 인접리스트에 키-값을 만든다. 값은 빈 배열로 생성한다.
for (let i = 0; i < max; i++) {
  adjList[i] = [];
}
// 정점간 간선 정보에 따라서, Loop을 사용해 위에 빈 배열을 만들었던 것에 값을 넣어준다.
// 이때 push로 넣으면 된다.

'CS > 자료구조' 카테고리의 다른 글

[자료구조] Binary Tree, BST  (0) 2023.11.16
[자료구조] Tree  (0) 2023.11.16
[자료구조] 인접 행렬, 인접 리스트  (0) 2023.11.15
[자료구조] Graph  (0) 2023.11.15
[TypeScript] MaxHeap 구현  (0) 2023.11.13