Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.22 KB | None | 0 0
  1. import java.util.TreeSet;
  2.  
  3. public class Test {
  4. public static void route(int[][] mat){
  5. Graph graph = new Graph(mat);
  6. TreeSet<Node> treeSet = new TreeSet<>();
  7. graph.getNode(0, 0).setValue(0);
  8. treeSet.add(graph.getNode(0,0));
  9. graph.print();
  10. System.out.println();
  11. while(!treeSet.isEmpty()){
  12. Node tempNode = treeSet.pollFirst();
  13. tempNode.setFlag(true);
  14. int tempX = tempNode.x;
  15. int tempY = tempNode.y;
  16. int value = tempNode.getValue();
  17. Node tempNodeO = graph.getNode(tempX - 1, tempY);
  18. if(!tempNodeO.isFlag()){
  19. int tempValue = tempNodeO.getWeight() + value;
  20. if(tempNodeO.getValue() > tempValue){
  21. tempNodeO.setValue(tempValue);
  22. tempNodeO.setPrev(tempNode);
  23. treeSet.add(tempNodeO);
  24. }
  25.  
  26. }
  27. tempNodeO = graph.getNode(tempX, tempY - 1);
  28. if(!tempNodeO.isFlag()){
  29. int tempValue = tempNodeO.getWeight() + value;
  30. if(tempNodeO.getValue() > tempValue){
  31. tempNodeO.setValue(tempValue);
  32. tempNodeO.setPrev(tempNode);
  33. treeSet.add(tempNodeO);
  34. }
  35. }
  36. tempNodeO = graph.getNode(tempX, tempY + 1);
  37. if(!tempNodeO.isFlag()){
  38. int tempValue = tempNodeO.getWeight() + value;
  39. if(tempNodeO.getValue() > tempValue){
  40. tempNodeO.setValue(tempValue);
  41. tempNodeO.setPrev(tempNode);
  42. treeSet.add(tempNodeO);
  43. }
  44.  
  45. }
  46. tempNodeO = graph.getNode(tempX + 1, tempY);
  47. if(!tempNodeO.isFlag()){
  48. int tempValue = tempNodeO.getWeight() + value;
  49. if(tempNodeO.getValue() > tempValue){
  50. tempNodeO.setValue(tempValue);
  51. tempNodeO.setPrev(tempNode);
  52. treeSet.add(tempNodeO);
  53. }
  54.  
  55. }
  56. }
  57. graph.print();
  58. System.out.println(0);
  59. System.out.println("Вес минимального пути: " + graph.getNode(graph.getNROW() - 1, graph.getNCOL() - 1).getValue());
  60. System.out.println("Путь: ");
  61. Node tempNode = graph.getNode(graph.getNROW() - 1, graph.getNCOL() - 1);
  62. while (tempNode.getPrev() != null){
  63. System.out.print(tempNode + "; ");
  64. tempNode = tempNode.getPrev();
  65. }
  66. }
  67.  
  68. public static void main(String[] args) {
  69. int[][] mat = new int[5][6];
  70. mat[0][0] = 1; mat[0][1] = 100; mat[0][2] = 1; mat[0][3] = 1; mat[0][4] = 1; mat[0][5] = 100;
  71. mat[1][0] = 1; mat[1][1] = 100; mat[1][2] = 1; mat[1][3] = 100; mat[1][4] = 1; mat[1][5] = 100;
  72. mat[2][0] = 1; mat[2][1] = 1; mat[2][2] = 1; mat[2][3] = 100; mat[2][4] = 1; mat[2][5] = 100;
  73. mat[3][0] = 100; mat[3][1] = 100; mat[3][2] = 100; mat[3][3] = 100; mat[3][4] = 1; mat[3][5] = 100;
  74. mat[4][0] = 100; mat[4][1] = 100; mat[4][2] = 100; mat[4][3] = 100; mat[4][4] = 1; mat[4][5] = 100;
  75. route(mat);
  76. }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement