javascriptにおける広さ優先エルゴード(BFS)と深さ優先エルゴード(DFS)

1003 ワード

//dfs    (  )
var nodelist=[]
function deepTraversal(node,nodelist){
    if(node){
        nodelist.push(node)
        var children=node.children
        for(var i=0;i
考え方:1.配列を作成して最終結果を保存する2.ノードが空でない場合は、ノードプッシュを配列の中に入れます.3.息子を取得して息子ノードを遍歴します.4.再帰します.

//bfs    (    )
function wideTraverval(node){
    var nodelist=[]
    if(node!=null){
        var temp=[]
        temp.unshift(node)
        while(temp.length!=0){
            var item=temp.shift()
            nodelist.push(item)
            var children=item.children
            for(var i=0;i
広度は優先的に二叉樹を経て、つまり段階的に遍歴します.順番にルートを回って、左の子供と右の子供です.だから、今のノードのすべての子供を遍歴します.子供の順序を左右して出力するので、先入れ先出しの原則です.列というデータ構造を考えました.構想:1.nodelistを作成して最終結果を保存します.列を作成して保存します.3.列が空いていない場合は、列の最初の要素を取得して、nodelist 4.すべての息子ノードを巡回します.列の最後の5を保存します.列が空いている時はループを終了します.終了します.