Guest User

Untitled

a guest
Nov 23rd, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. package adjacencymatrixgraph;
  2.  
  3. import Queue.Queue;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6.  
  7. public class AdjacencyMatrixGraph {
  8.  
  9. private int size;
  10. private boolean[][] adj;
  11.  
  12. AdjacencyMatrixGraph(int size) {
  13. this.size = size;
  14. this.adj = new boolean[size][size];
  15. }
  16.  
  17. void addEdge(int i, int j) {
  18. this.adj[i][j] = true;
  19. }
  20.  
  21. void removeEdge(int i, int j) {
  22. this.adj[i][j] = false;
  23. }
  24.  
  25. boolean hasEdge(int i, int j) {
  26. return this.adj[i][j];
  27. }
  28.  
  29. List<Integer> outEdges(int i) {
  30. List<Integer> edges = new ArrayList<Integer>();
  31. for (int j = 0; j < size; j++)
  32. if (this.adj[i][j])
  33. edges.add(j);
  34. return edges;
  35. }
  36.  
  37. List<Integer> inEdges(int i) {
  38. List<Integer> edges = new ArrayList<Integer>();
  39. for (int j = 0; j < size; j++)
  40. if (this.adj[j][i])
  41. edges.add(j);
  42. return edges;
  43. }
  44.  
  45. //BFS menggunakan antrian
  46. public void BreadthFirstSearch(int nodeAwal) {
  47. boolean[] terkunjungi = new boolean[size];
  48. Queue q = new Queue();
  49. q.enqueue(nodeAwal);
  50. terkunjungi[nodeAwal] = true;
  51. System.out.printf("%d ", nodeAwal);
  52. while (!q.isEmpty()) {
  53. int i = q.dequeue();
  54. for (int j : this.outEdges(i)) {
  55. if (!terkunjungi[j]) {
  56. q.enqueue(j);
  57. terkunjungi[j] = true;
  58. System.out.printf("%d ", j);
  59. }
  60. }
  61. }
  62. System.out.println("");
  63. }
  64. }
Add Comment
Please, Sign In to add comment