Skip to main content

Breadth First Search Implementation in Java


Breadth First Search Implementation in Java

For Graph Class Design and DFS implementation please refer to below link:-

depth-first-search-implementation-in-java


 
/*

1. Pick a vertex.
2. Get Adjacent Vertex.
3. Insert in queue ( at tail)
4. Remove vertex from queue( head)
5. Do until no vertex left in a queue.

*/ 

void searchBFS()
 {
//this is how we define queue using LinkedList
  Queue<Character> queue=new LinkedList<Character>();
  
  queue.add(vertexlist[0].label);
  
  
 
  
  while(!queue.isEmpty())
  {
  
                 //element at head (Function in main graph class please use above link)
  ArrayList adjvertex=getNeighbours(queue.peek());
  System.out.println(queue.peek());
              //element removed at head
  queue.remove();
 
        if(adjvertex!=null)
  {
  for(int i=0;i<adjvertex.size();i++)
  {
               //element added at tail  
   queue.add((Character) adjvertex.get(i));
  }
  }
  }
  
  
 }

Comments

.

Popular posts from this blog

Basics of System Design

This article is first one from the series of articles dedicated to system design interviews. Here i am going to present the base scenario to consider before starting to solve system design problems. Questions to ask? 1) what is the number of requests a website will recieve in a day/month/second? 2) what is the amount of memory a website will deal in a day/month/second? 3) what is the number of servers that can accomodate these requests? To answer this , first we need to remember the below numbers:- 1 million = 10 lakh = 1000000 = 10^6 1 billion = 1000 million = 10^9 1 KB = 1024 B = 10^3 1 MB= 10^6 = 1024 KB 1 GB= 10^9 = 1024 MB 1 TB = 10^12 = 1024 GB Memory we need to see in Bytes Requests we need to see in numbers example :- suppose a website recieves 100M requests every month then:- requests per day = request per month /24 = 416700 requests requests per second = requests per day / (24*360...

Delete node at a given position in Linked List

Delete node at a given position in Linked List //delete node by position in linked list public Node deleteKeyAtPosition ( Node head , int position ) { Node temp = head ; Node prevtemp = temp ; int c = 1 ; //if position is head if ( position == 1 ) { head = head . next ; return head ; } //position +1 because we have to go till that point while ( c != position + 1 ) { if ( c == position && position != 1 ) { prevtemp . next = temp . next ; temp . next = null ; temp = prevtemp ; } prevtemp = temp ; temp = temp . next ; c ++; } return head ; }