Advertisement
Guest User

Untitled

a guest
Dec 12th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.26 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3. import java.util.Stack;
  4.  
  5. class Graph<E> {
  6.  
  7. int num_nodes; // broj na jazli
  8. E nodes[]; // informacija vo jazlite - moze i ne mora?
  9. int adjMat[][]; // matrica na sosednost
  10.  
  11. @SuppressWarnings("unchecked")
  12. public Graph(int num_nodes) {
  13. this.num_nodes = num_nodes;
  14. nodes = (E[]) new Object[num_nodes];
  15. adjMat = new int[num_nodes][num_nodes];
  16.  
  17. for(int i=0;i<this.num_nodes;i++)
  18. for(int j=0;j<this.num_nodes;j++)
  19. adjMat[i][j]=0;
  20. }
  21.  
  22.  
  23.  
  24. public Graph(int num_nodes, E[] nodes) {
  25. this.num_nodes = num_nodes;
  26. this.nodes = nodes;
  27. adjMat = new int[num_nodes][num_nodes];
  28.  
  29. for(int i=0;i<this.num_nodes;i++)
  30. for(int j=0;j<this.num_nodes;j++)
  31. adjMat[i][j]=0;
  32. }
  33.  
  34.  
  35.  
  36. int adjacent(int x,int y)
  37. { // proveruva dali ima vrska od jazelot so indeks x do jazelot so indeks y
  38. return (adjMat[x][y]!=0)?1:0;
  39. }
  40.  
  41. void addEdge(int x,int y)
  42. { // dodava vrska megu jazlite so indeksi x i y
  43. adjMat[x][y]=1;
  44. adjMat[y][x]=1;
  45. }
  46.  
  47. void deleteEdge(int x,int y)
  48. {
  49. // ja brise vrskata megu jazlite so indeksi x i y
  50. adjMat[x][y]=0;
  51. adjMat[y][x]=0;
  52. }
  53.  
  54. // Moze i ne mora?
  55. E get_node_value(int x)
  56. { // ja vraka informacijata vo jazelot so indeks x
  57. return nodes[x];
  58. }
  59.  
  60. // Moze i ne mora?
  61. void set_node_value(int x, E a)
  62. { // ja postavuva informacijata vo jazelot so indeks na a
  63. nodes[x]=a;
  64. }
  65.  
  66. public int getNum_nodes() {
  67. return num_nodes;
  68. }
  69.  
  70. public void setNum_nodes(int num_nodes) {
  71. this.num_nodes = num_nodes;
  72. }
  73.  
  74.  
  75.  
  76.  
  77.  
  78. @Override
  79. public String toString() {
  80. String ret=" ";
  81. for(int i=0;i<num_nodes;i++)
  82. ret+=nodes[i]+" ";
  83. ret+="\n";
  84. for(int i=0;i<num_nodes;i++){
  85. ret+=nodes[i]+" ";
  86. for(int j=0;j<num_nodes;j++)
  87. ret+=adjMat[i][j]+" ";
  88. ret+="\n";
  89. }
  90. return ret;
  91. }
  92.  
  93.  
  94. }
  95.  
  96.  
  97. public class GraphCreate{
  98.  
  99. public static void main(String []args){
  100.  
  101.  
  102.  
  103. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  104. int N = Integer.parseInt(br.readLine());
  105.  
  106. Graph<Character> graph=new Graph<>(0);
  107.  
  108.  
  109. for(int i =0;i<=N;i++){
  110.  
  111. String lines[]=br.readLine().split(" ");
  112.  
  113. if(lines[0].equals("CREATE"))
  114. graph=new Graph<>(Integer.parseInt(lines[1]));
  115.  
  116.  
  117. else if(lines[0].equals("ADDEDGE"))
  118. graph.addEdge(Integer.parseInt(lines[1]),Integer.parseInt(lines[2]));
  119.  
  120.  
  121. else if(lines[0].equals("PRINTMATRIX"))
  122. System.out.print(graph);
  123.  
  124. else if(lines[0].equals("PRINTNODE"))
  125. System.out.println(graph.get_node_value(Integer.parseInt(lines[0])));
  126.  
  127. else if(lines[0].equals("ADJACENT"))
  128. System.out.println(graph.adjacent(Integer.parseInt(lines[1]),Integer.parseInt(lines[2])));
  129.  
  130. else if(lines[0].equals("DELETEEDGE"))
  131. graph.deleteEdge(Integer.parseInt(lines[1]),Integer.parseInt(lines[2]));
  132.  
  133. }
  134.  
  135. }
  136.  
  137.  
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement