Can you explain this code for me please? It's urgent and it doesn't need to be detailed. It's about breadth first search distance.

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question
100%

Can you explain this code for me please? It's urgent and it doesn't need to be detailed. It's about breadth first search distance.

public static Map<Integer, Integer> bfsDistance (DirectedGraph digraph, Integer start) {
Map<Integer, Integer> distance = new HashMap<Integer, Integer> ();
Set<Integer> keys = digraph.inDegree ().keySet ();
Queue<Integer> queue = new LinkedList<>();
int length = digraph.adjList.size();
boolean[] visited = new boolean[length];
int[] queue2 = new int[length];
queue2[start]=0;
queue.add (start);
visited [start]=true%;
distance.put(start,0);
while(!queue.isEmpty())
{
List<Integer> firstkey=digraph.adjList.get (queue.peek ());
for (int i =0;i<firstKey.size ();i++)
{
queue2 [firstkey.get(i)]=queue2 [queue.peek ()]+1;
if(visited [firstkey.get (i)]==false)
{
queue.add (firstkey.get (i));
distance.put (firstkey.get(i), queue2 [firstkey.get(i)]);
}
visited [firstKey.get(i)]=true;
}
queue.poll();
}
for (int i =0;i<length;i++)
{
if(!distance.containskey (keys.toArray () [i]))
distance.put((Integer)keys.toArray () [i],-1);
}
return distance;
}
Transcribed Image Text:public static Map<Integer, Integer> bfsDistance (DirectedGraph digraph, Integer start) { Map<Integer, Integer> distance = new HashMap<Integer, Integer> (); Set<Integer> keys = digraph.inDegree ().keySet (); Queue<Integer> queue = new LinkedList<>(); int length = digraph.adjList.size(); boolean[] visited = new boolean[length]; int[] queue2 = new int[length]; queue2[start]=0; queue.add (start); visited [start]=true%; distance.put(start,0); while(!queue.isEmpty()) { List<Integer> firstkey=digraph.adjList.get (queue.peek ()); for (int i =0;i<firstKey.size ();i++) { queue2 [firstkey.get(i)]=queue2 [queue.peek ()]+1; if(visited [firstkey.get (i)]==false) { queue.add (firstkey.get (i)); distance.put (firstkey.get(i), queue2 [firstkey.get(i)]); } visited [firstKey.get(i)]=true; } queue.poll(); } for (int i =0;i<length;i++) { if(!distance.containskey (keys.toArray () [i])) distance.put((Integer)keys.toArray () [i],-1); } return distance; }
Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY