Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Why does the queue switch elements around when I use the remove method? I am trying to implement a BFS algorithm. I ' m using

Why does the queue switch elements around when I use the remove method? I am trying to implement a BFS algorithm. I'm using Java 17.
allVertices.clear();
vertex1.status = "discovered";
Queue queue = new PriorityQueue<>();
queue.add(vertex1);
while (!queue.isEmpty()){
System.out.print("Queue"+ queue);
Vertex toRemove = queue.remove();
ArrayList oldNeighbors = new ArrayList(toRemove.neighbors);
// System.out.print("Queue added" + queue);
for (int i =0; i < oldNeighbors.size(); i++){
toRemove.disconnect(oldNeighbors.get(i));
if (oldNeighbors.get(i).status.equals("undiscovered")){
oldNeighbors.get(i).status = "discovered";
queue.add(oldNeighbors.get(i));
toRemove.connect(oldNeighbors.get(i));
}
// System.out.println("neighbors:"+ toRemove.neighbors);
}
toRemove.status = "explored";
allVertices.add(toRemove);
}
// BFS algorithm
allVertices.clear();
vertex1.status = "discovered";
Queue queue = new PriorityQueue<>();
queue.add(vertex1);
while (!queue.isEmpty()){
System.out.print("Queue"+ queue);
Vertex toRemove = queue.remove();
ArrayList oldNeighbors = new ArrayList(toRemove.neighbors);
// System.out.print("Queue added" + queue);
for (int i =0; i < oldNeighbors.size(); i++){
toRemove.disconnect(oldNeighbors.get(i));
if (oldNeighbors.get(i).status.equals("undiscovered")){
oldNeighbors.get(i).status = "discovered";
queue.add(oldNeighbors.get(i));
toRemove.connect(oldNeighbors.get(i));
}
// System.out.println("neighbors:"+ toRemove.neighbors);
}
toRemove.status = "explored";
allVertices.add(toRemove);
}

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Machine Learning And Knowledge Discovery In Databases European Conference Ecml Pkdd 2015 Porto Portugal September 7 11 2015 Proceedings Part 2 Lnai 9285

Authors: Annalisa Appice ,Pedro Pereira Rodrigues ,Vitor Santos Costa ,Joao Gama ,Alipio Jorge ,Carlos Soares

1st Edition

3319235249, 978-3319235240

More Books

Students also viewed these Databases questions