Question: 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. Im using Java
allVertices.clear;
vertexstatus "discovered";
Queue queue new PriorityQueue;
queue.addvertex;
while queue.isEmpty
System.out.printQueue queue;
Vertex toRemove queue.remove;
ArrayList oldNeighbors new ArrayListtoRemoveneighbors;
System.out.printQueue added" queue;
for int i ; i oldNeighbors.size; i
toRemove.disconnectoldNeighborsgeti;
if oldNeighborsgetistatus.equalsundiscovered
oldNeighbors.getistatus "discovered";
queue.addoldNeighborsgeti;
toRemove.connectoldNeighborsgeti;
System.out.printlnneighbors: toRemove.neighbors;
toRemove.status "explored";
allVertices.addtoRemove;
BFS algorithm
allVertices.clear;
vertexstatus "discovered";
Queue queue new PriorityQueue;
queue.addvertex;
while queue.isEmpty
System.out.printQueue queue;
Vertex toRemove queue.remove;
ArrayList oldNeighbors new ArrayListtoRemoveneighbors;
System.out.printQueue added" queue;
for int i ; i oldNeighbors.size; i
toRemove.disconnectoldNeighborsgeti;
if oldNeighborsgetistatus.equalsundiscovered
oldNeighbors.getistatus "discovered";
queue.addoldNeighborsgeti;
toRemove.connectoldNeighborsgeti;
System.out.printlnneighbors: toRemove.neighbors;
toRemove.status "explored";
allVertices.addtoRemove;
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
