0
我正在研究廣度優先搜索或BFS算法,並且我遇到了一個想法。我顯示了我已經實現BFS的圖的樹結構。現在,也許我可以只顯示在使用鏈表不同的方式樹形結構,但我想修改我使用的顯示樹狀結構的BFS方法顯示在java中執行BFS遍歷的圖的樹結構
public class BFS
{
private Queue<Integer> queue;
public BFS()
{
queue = new LinkedList<Integer>();
}
public void bfs(int adjacency_matrix[][], int source)
{
int number_of_nodes = adjacency_matrix[source].length - 1;
int[] visited = new int[number_of_nodes + 1];
int i, element;
visited[source] = 1;
queue.add(source);
while (!queue.isEmpty())
{
element = queue.remove();
i = element;
System.out.print(i + "\t");
while (i <= number_of_nodes)
{
if (adjacency_matrix[element][i] == 1 && visited[i] == 0)
{
queue.add(i);
visited[i] = 1;
}
i++;
}
}
}
上面給出的是我的BFS方法,可有人幫我到讓我知道我有什麼確切的修改做出的代碼,使我得到所需的輸出
例如假設給定的鄰接矩陣是這樣的:
{0,1,0,0,0,1,0,0
1,0,0,0,0,0,0,0
0,0,0,0,0,0,1,0
0,0,0,0,0,0,1,1
0,0,0,0,0,1,0,0
1,0,0,0,1,0,1,0
0,0,1,0,0,1,0,1
0,0,0,1,0,0,0,1}
的樹狀結構這張圖會像這樣
A
/ \
B F
/ \
E G
/ | \
C H D
如果一個節點有10個孩子,會發生什麼情況? –
這是我想弄明白的另一個問題 –