// æµè¯å¾ var Graph = require('./Graph'); // æµè¯ä»£ç var graph = new Graph(); // æ·»å é¡¶ç¹ var myVertexes = ["A", "B", "C", "D", "E", "F", "G", "H", "I"]; for (var i = 0; i < myVertexes.length; i++) { graph.addVertex(myVertexes[i]); } // æ·»å è¾¹ graph.addEdge('A', 'B'); graph.addEdge('A', 'C'); graph.addEdge('A', 'D'); graph.addEdge('C', 'D'); graph.addEdge('C', 'G'); graph.addEdge('D', 'G'); graph.addEdge('D', 'H'); graph.addEdge('B', 'E'); graph.addEdge('B', 'F'); graph.addEdge('E', 'I'); // æå°ç»æ console.log(graph.toString()); // 广度ä¼å éå console.log(graph.bfs(0)); // [ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I' ] // 深度ä¼å éå console.log(graph.dfs(0)); // [ 'A', 'D', 'H', 'G', 'C', 'B', 'F', 'E', 'I' ] // æçè·¯å¾ console.log(graph.pathTo("E", "A")); // [ 'E', 'B', 'A' ] console.log(graph.pathTo("F", "G")); // [ 'F', 'B', 'A', 'C', 'G' ] console.log(graph.topSort()); // [ 'A', 'C', 'D', 'H', 'G', 'B', 'F', 'E', 'I' ] console.log('==============================æµè¯ç¨ å¯å¾=========================================='); var DenseGraph = require('./DenseGraph'); var N = 20; var M = 100; var dgraph = new DenseGraph(N, false); for(let i = 0; i < M; i++) { let a = Math.floor(Math.random()*N); let b = Math.floor(Math.random()*N); dgraph.addEdge(a, b); } dgraph.show(); dgraph.showII(); console.log('==============================æµè¯ç¨çå¾=========================================='); var SparseGraph = require('./SparseGraph'); var N = 20; var M = 100; var sgraph = new SparseGraph(N, false); for(let i = 0; i < M; i++) { let a = Math.floor(Math.random()*N); let b = Math.floor(Math.random()*N); sgraph.addEdge(a, b); } sgraph.show(); console.log('==============================æµè¯èéåé=========================================='); var Component = require('./Components'); var cgraph = new SparseGraph(9, false); cgraph.addEdge(7, 8); cgraph.addEdge(0, 1); cgraph.addEdge(0, 2); cgraph.addEdge(0, 5); cgraph.addEdge(0, 6); cgraph.addEdge(3, 4); cgraph.addEdge(3, 5); cgraph.addEdge(4, 5); cgraph.addEdge(4, 6); var c = new Component(cgraph); console.log("èéåé为: "+ c.count()); console.log('==============================æµè¯å¯»è·¯ç®æ³=========================================='); var Path = require('./Path'); var p = new Path(cgraph, 0); p.showPath(6); console.log('==============================æµè¯æçè·¯å¾ç®æ³=========================================='); var ShortestPath = require('./ShortestPath'); var sp = new ShortestPath(cgraph, 0); sp.showPath(6);