Здравствуйте, Мне нужна помощь в понимании части алгоритма bfs, где я устанавливаю элемент queue.remove() и как элемент устанавливается со значением. Если кто-то может объяснить мне, что это очень поможет. Благодарю.queue.remove() и bfs нужна помощь java
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.println(i+"\t");
while(i<=number_of_nodes)
{
if(adjacency_matrix[element][i] == 1 && visited[i] == 0)
{
queue.add(i);
visited[i] = 1;
}
i++;
}}
}
}
Не могли бы вы дать фон. Какая польза, почему вы это делаете, и где именно проблема в этой ситуации? SO - ответить на проблемы с кодированием, здесь у вас есть алгоритм, который потенциально может работать, я не пытался его запустить, потому что я действительно не понимаю необходимость, так как вы не дали никаких ... –
жаль, что не был яснее. Этот алгоритм работает. Он читается в матрице смежности и всем. Я не понимаю, как работает элемент = queue.remove() в коде, например, как он присваивает ему значение. – codegeek123
Из Javadoc: 'Извлекает и удаляет головку этой очереди. Этот метод отличается от опроса только тем, что он генерирует исключение, если эта очередь пуста. –