Advertisement
Guest User

Graph.java

a guest
Mar 24th, 2018
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.24 KB | None | 0 0
  1.  
  2. import java.util.*;
  3. import java.io.*;
  4.  
  5. public class Graph {
  6.  
  7. public class Vertex{
  8. Integer mVertId;
  9. Integer mDistance;
  10. }
  11.  
  12. Vector<LinkedList<Vertex>> mGraph;
  13. int mVertexCount;
  14. int mEdgeCount;
  15.  
  16.  
  17. Vector<LinkedList<Vertex>> getGraph() {return mGraph;}
  18. LinkedList<Vertex> getAdj(Integer vertex) { return mGraph.get(vertex.intValue()); }
  19. Integer getVertexCount() {return mVertexCount;}
  20.  
  21. // Constructor that uses an adjacency specified as a GR file
  22.  
  23. public Graph (String fileName)
  24. {
  25. try{
  26. Scanner inFile = new Scanner(new FileReader(fileName));
  27. while (inFile.hasNextLine())
  28. {
  29. String tok = inFile.next();
  30. tok.trim();
  31.  
  32. if (tok.equals("c")) {
  33. inFile.nextLine();
  34. }
  35.  
  36. else if (tok.equals("p"))
  37. {
  38. String code = inFile.next();
  39. mVertexCount = inFile.nextInt();
  40. mEdgeCount = inFile.nextInt();
  41. System.out.println ("Vertex Count " + mVertexCount);
  42. mGraph = new Vector<LinkedList<Vertex>>(mVertexCount+1);
  43.  
  44. for (int i = 0; i <= mVertexCount; i++) {
  45.  
  46. System.out.println (i);
  47. mGraph.add(i, new LinkedList<Vertex>());
  48. }
  49. System.out.println ("Size of Vector = " + mGraph.size());
  50. inFile.nextLine();
  51. }
  52. else if (tok.equals("a"))
  53. {
  54. Integer fromVertex = inFile.nextInt();
  55. Integer toVertex = inFile.nextInt();
  56. Integer distance = inFile.nextInt();
  57. Vertex v = new Vertex();
  58. v.mVertId = toVertex;
  59. v.mDistance = distance;
  60.  
  61. //System.out.println ("From -> " + fromVertex + " to " + toVertex + " Dist " + distance);
  62. LinkedList<Vertex> adj = mGraph.get(fromVertex);
  63. adj.add(v);
  64. inFile.nextLine();
  65. }
  66. else
  67. {
  68. System.out.println ("Found an illegal code: " + tok);
  69. }
  70. }
  71. }
  72. catch (Exception e)
  73. {
  74. System.out.println ("Caught Exception " + e.getMessage());
  75. }
  76. }
  77.  
  78. // Print Graph - Utility Function
  79.  
  80. void PrintGraph ()
  81. {
  82. // Go through the Adjacency Matrix
  83.  
  84. for (int vert = 1; vert <= mVertexCount; vert++)
  85. {
  86. LinkedList<Vertex> adj = mGraph.get(vert);
  87. System.out.print ("From Vertex: " + vert);
  88. for (Iterator<Vertex> vertEnum = adj.iterator();
  89. vertEnum.hasNext();)
  90. {
  91. Vertex toVert = vertEnum.next();
  92. System.out.print (" " + toVert.mVertId + " (" + toVert.mDistance + ") ");
  93. }
  94. System.out.println();
  95. }
  96. }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement