graph
是一个基于广度优先搜索(BFS)算法的JavaScript库。它可以用于创建并搜索有向或无向图,查找最短路径,检查图的连通性等。
您可以使用以下命令从npm
安装graph
:
npm install @yuka/graph
或者从github
上下载源代码并将其放置在您的项目文件夹中。
要使用graph
库,您需要创建一个Graph
实例并添加节点和边,然后使用BFS
方法搜索节点间的路径。
import { Graph } from '@yuka/graph';
const graph = new Graph();
graph.addNode('A');
graph.addNode('B');
graph.addNode('C');
graph.addNode('D');
graph.addNode('E');
graph.addEdge('A', 'B');
graph.addEdge('A', 'C');
graph.addEdge('B', 'C');
graph.addEdge('B', 'D');
graph.addEdge('C', 'E');
graph.addEdge('D', 'E');
const startNode = 'A';
const endNode = 'E';
const shortestPath = graph.BFS(startNode, endNode);
console.log(shortestPath); // ['A', 'E'] 即节点A到节点E的最短路径
new Graph()
构造一个Graph
实例以进行后续处理。
addNode(node)
添加一个节点到图中。
node
- 要添加的节点addEdge(node1, node2)
添加一条从node1
到node2
的边。
node1
- 源节点node2
- 目标节点removeNode(node)
从图中删除给定的节点。
node
- 要删除的节点removeEdge(node1, node2)
从图中删除从node1
到node2
的边。
node1
- 源节点node2
- 目标节点BFS(startNode, endNode)
搜索从startNode
到endNode
的最短路径,并返回该路径。
startNode
- 起始节点endNode
- 目标节点我们希望graph
库能够帮助您创建和搜索图,并找到节点间的最短路径。请随意尝试,并告诉我们您的反馈意见。