>  기사  >  웹 프론트엔드  >  Javascript를 사용하는 그래프의 BFS 및 DFS만

Javascript를 사용하는 그래프의 BFS 및 DFS만

WBOY
WBOY원래의
2024-08-22 22:37:07383검색

Only BFS and DFS in Graph using Javascript

이 기사는 두 그래프 접근 방식을 모두 사용하여 BFS 및 DFS 순회를 수행하는 그래프의 간단한 부분입니다

  1. 인접 매트릭스(BFS) 사용
  2. 인접 목록(DFS) 사용
const adjMatrix = [
    [0, 1, 1, 0, 0],
    [1, 0, 0, 1, 0],
    [1, 0, 0, 0, 1],
    [0, 1, 0, 0, 1],
    [0, 0, 1, 1, 0]
];

const BFS = () => {
    const q = [0];
    const visited = [0];
    let path = '';

    while(q.length) {
        const value = q.shift();
        path += value;

        for(let j = 0; j< adjMatrix.length; j++) {
// j Means the Node present / not in visited List
            if (adjMatrix[value][j] && visited.indexOf(j) < 0) {
                q.push(j);
                visited.push(j);
            }
        }
    }
    console.log(path);
}

BFS();

// 01234
const adjList = {
    0: [1, 2],
    1: [0, 3],
    2: [0, 4],
    3: [1, 4],
    4: [2, 3]
}

const DFS = () => {
    const stack = [0];
    const visited = [0];
    let path = '';

    while(stack.length) {
        const value = stack.pop();
        path += value;

        for(let item of adjList[value]) {
            if (visited.indexOf(item) < 0) {
                stack.push(item);
                visited.push(item);
            }
        }
    }
    console.log(path);
}

DFS();// 02431

그래프에 대한 자세한 내용은 아래 링크를 확인해주세요.

Javascript를 이용한 그래프 데이터 구조

위 내용은 Javascript를 사용하는 그래프의 BFS 및 DFS만의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.