ホームページ  >  記事  >  ウェブフロントエンド  >  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

Graph に関するさらに詳しい記事については、以下のリンクをご覧ください。

JavaScript を使用したグラフ データ構造

以上がJavascript を使用したグラフ内の BFS と DFS のみの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。