Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.15 KB | None | 0 0
  1. public boolean isBipartit() {
  2.         HashSet<Vertex> trueGroup = new HashSet<Vertex>();
  3.         HashSet<Vertex> falseGroup = new HashSet<Vertex>();
  4.         HashSet<Vertex> trueGroupCopy = new HashSet<Vertex>();
  5.         HashSet<Vertex> falseGroupCopy = new HashSet<Vertex>();
  6.         boolean finished = false;
  7.        
  8.         if(vertices.size() == 0){
  9.             return true;
  10.         }
  11.        
  12.         trueGroup.add(vertices.get(0));
  13.         trueGroupCopy.addAll(trueGroup);
  14.        
  15.         do{
  16.             for(Vertex v: trueGroup){
  17.                 for(Edge e: edges){
  18.                     if(e.getSource() == v){
  19.                         falseGroup.add(e.getTarget());
  20.                     }
  21.                     if(e.getTarget() == v){
  22.                         falseGroup.add(e.getSource());
  23.                     }
  24.                 }
  25.             }
  26.            
  27.             for(Vertex v: falseGroup){
  28.                 for(Edge e: edges){
  29.                     if(e.getSource() == v){
  30.                         trueGroup.add(e.getTarget());
  31.                     }
  32.                     if(e.getTarget() == v){
  33.                         trueGroup.add(e.getSource());
  34.                     }
  35.                 }
  36.             }
  37.            
  38.             finished = trueGroup.equals(trueGroupCopy) && falseGroup.equals(falseGroupCopy);
  39.            
  40.             trueGroupCopy.addAll(trueGroup);
  41.             falseGroupCopy.addAll(falseGroup);
  42.         } while(!finished);
  43.        
  44.         int oldsize = trueGroup.size();
  45.         trueGroup.removeAll(falseGroup);
  46.         return oldsize == trueGroup.size();
  47.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement