该函数返回由AdjaceMatrix.javascript表示的图形的DFS遍历
比如说,, 对于邻接矩阵:该函数返回由AdjaceMatrix.javascript表示的图形的DFS遍历,javascript,Javascript,比如说,, 对于邻接矩阵:[[0,1,0,0],[0,1,1,1],[1,0,0,1],[0,0,1,0],节点数:4 起始顶点:3, 输出必须是[3,2,0,1]。 ''' dfs(启动节点) { var=[]; 对于(var i=0;i
[[0,1,0,0],[0,1,1,1],[1,0,0,1],[0,0,1,0]
,节点数:4
起始顶点:3,
输出必须是[3,2,0,1]
。
'''
dfs(启动节点)
{
var=[];
对于(var i=0;i
您可以先从相邻节点中获取一棵树,然后通过查找所有可能的节点来遍历该树,并在第一次找到足够结果的情况下提前返回
函数DSFTravel(矩阵、大小、开始){
常数
遍历=(树、节点、访问=[])=>{
访问推送(节点);
if(visted.length==size)返回visted;
for(树[node]的let n){
如果(包括(n))继续;
让结果=遍历(树,n,[…访问]);
if(result.length==size)返回结果;
}
返回[];
},
树=矩阵。减少((r,a,i)=>{
r[i]=[];
a、 forEach((v,j)=>v&r[i].push(j));
返回r;
}, {});
返回遍历(树,开始);
}
var数据=[[0,1,0,0],[0,1,1,1],[1,0,0,1],[0,0,1,0],,
结果=DSFTravel(数据,4,3);
控制台日志(结果)代码>
Blockquote
>inside it write a JavaScript function that takes 3 arguments: an adjacency matrix in the form of
>a 2D array, number of nodes, and starting vertex.
>The function returns the DFS traversal of the graph represented by the adjacency matrix.
var visited = [];
for (var i = 0; i < this.noOfVertices; i++)
visited[i] = false;
this.DFSUtil(startingNode, visited);
}
// Recursive function which process and explore
// all the adjacent vertex of the vertex with which it is called
DFSUtil(vert, visited)
{
visited[vert] = true;
console.log(vert);
var get_neighbours = this.AdjList.get(vert);
for (var i in get_neighbours) {
var get_elem = get_neighbours[i];
if (!visited[get_elem])
this.DFSUtil(get_elem, visited);
}
} '''