该函数返回由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); 
        } 
    } '''