breadth-first-search

    0熱度

    1回答

    我有打印二叉樹的水平的方法: template<class BTNode> void breadthfirstByLevel(BTNode* node_ptr) { if (node_ptr == NULL) { return; } queue<BTNode *> q1; queue<BTNode *> q2; q1.push(node_ptr);

    0熱度

    1回答

    我有一個0和X的矩陣(0代表你可以穿過,X代表牆)。 我有一個起點和一個終點。 我用BFS找到開始和結束之間的最短路徑(長度)。 (它工作) 但現在我需要找到有效的道路,我不知道該怎麼做。 (我以爲我可以使用李算法recursiv)。 Example: 5 5 SXXXF 0XX00 0XX0X 0000X XXXXX 長度是8和路是:(1,1) - >(2,1) - >(3,1

    -2熱度

    1回答

    如何在使用隊列時在Java寬度優先圖中實現這些方法? 添加一個新的頂點到圖中沒有任何邊的方法? 如何返回鄰接矩陣? 如果它包含三角形?

    0熱度

    1回答

    我試圖實現一個python函數,它檢查兩個給定節點(start和goal)是否在一定距離內(假設dist = 4 )在圖中。 一個原始的方法是找到兩個節點之間的最短路徑(使用Breadth First Algorithm),然後檢查最短路徑的長度是否小於(或等於)規定的距離(dist = 4)。但是,這顯然不是最好的解決方案,並且有很多開銷。從這兩個python函數開始,請你指導我如何修改這些函數

    0熱度

    1回答

    我有點困惑有關tree.If BFS的時間複雜度找到頂點有有n個父節點的孩子沒有那麼會有什麼時間複雜度找到價值? 例如: - 它是圖形image.I希望通過使用BFS算法中那麼會是怎樣的時間複雜度找到頂點「K」?請解釋一下。

    0熱度

    2回答

    這是我的廣度優先搜索代碼。 我想逐級打印。一條線,一個水平。 public static void printTreeBreadthFirst(Tree t) { Node root = t.getRoot(); Queue<Node> queue = new LinkedList<Node>() ; if (root == null) return

    0熱度

    2回答

    mark x as visited list L = x tree T = x while L nonempty choose some vertex v from front of list process v for each unmarked neighbor w mark w as visited add it to end of

    0熱度

    3回答

    我似乎在構建寬度優先樹時遇到問題。 在下面的代碼中,我有一個節點通過另一個類中的循環插入。 樹的結構應該是像這樣: A /\ B C /\ /\ D E F G 現在的代碼:左側 我的代碼結構正確,而右側增加了左側以及。我知道這種情況發生在代碼中,但是有沒有辦法阻止這種情況發生? public Node familyTree; public void breadthFirs

    0熱度

    1回答

    應用迭代深化深度優先搜索(IDDFS) 我試圖在樹的形式第一次做這樣的事圖形應用IDDFS,結果是這樣的: At level 1: d,e,p At level 2: d,b,e,c,e,h,r,p,q At level 3: d,b,a,e,h,c,a,e,h,q,p,r,f,p,q At level 4: d,b,a,e,h,p,q,c,a,e,h,q,p,q,r,f,c,GOAL

    1熱度

    1回答

    我有一個加權樹N頂點以鄰接表的形式存儲。我有一個M節點的列表。 我們計算的每對節點之間的距離M個節點的列表中此樹是我寫了這個: using namespace std; #define MAX_N (1<<17) #define MAX_V (1<<17) typedef pair<int,int> pii; vector<pii> adj[MAX_V]; bool vis[MAX