色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java深度優先和廣度優先遍歷

衛若男1年前7瀏覽0評論

Java是一門非常流行的編程語言,而深度優先遍歷和廣度優先遍歷是Java編程中常用的算法。深度優先遍歷和廣度優先遍歷都是圖的遍歷方式,可以用在許多領域,如網絡爬蟲、迷宮尋路等。

深度優先遍歷(DFS)是從根節點開始遍歷直到最后一個葉子節點,然后再返回遍歷下一個分支。可以使用遞歸方式來實現深度優先遍歷:

public void DFS(Node node) {
if (node == null) {
return;
}
visit(node);
node.visited = true;
for (Node n : node.adjacentNodes) {
if (!n.visited) {
DFS(n);
}
}
}

廣度優先遍歷(BFS)是從根節點開始遍歷每一層的所有節點,然后再遍歷下一層的所有節點,直到遍歷完整個圖。可以使用隊列來實現廣度優先遍歷:

public void BFS(Node node) {
Queuequeue = new LinkedList<>();
queue.add(node);
node.visited = true;
while (!queue.isEmpty()) {
Node n = queue.remove();
visit(n);
for (Node adjacent : n.adjacentNodes) {
if (!adjacent.visited) {
adjacent.visited = true;
queue.add(adjacent);
}
}
}
}

深度優先遍歷和廣度優先遍歷都非常有用,不同場景下選擇不同的遍歷方式可以達到更好的效果。在實際編程中,我們可以根據需要分別使用深度優先遍歷和廣度優先遍歷來實現不同的功能。