-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcompression.diff
More file actions
124 lines (122 loc) · 4.87 KB
/
Copy pathcompression.diff
File metadata and controls
124 lines (122 loc) · 4.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
--- input/input.java
+++ output/output.java
@@ -60,66 +60,8 @@
public void go() {
// shows distance to all vertices
// Interactive run for understanding the
- // class first time. Assumes source vertex is 0 and
- try (Scanner sc = new Scanner(System.in)) {
- int i;
- int v;
- int e;
- int u;
- int ve;
- int w;
- int j;
- int neg = 0;
- System.out.println("Enter no. of vertices and edges please");
- v = sc.nextInt();
- e = sc.nextInt();
- Edge[] arr = new Edge[e]; // Array of edges
- System.out.println("Input edges");
- for (i = 0; i < e; i++) {
- u = sc.nextInt();
- ve = sc.nextInt();
- w = sc.nextInt();
- arr[i] = new Edge(u, ve, w);
- }
- int[] dist = new int[v]; // Distance array for holding the finalized shortest path distance
- // between source
- // and all vertices
- int[] p = new int[v]; // Parent array for holding the paths
- for (i = 0; i < v; i++) {
- dist[i] = Integer.MAX_VALUE; // Initializing distance values
- }
- dist[0] = 0;
- p[0] = -1;
- for (i = 0; i < v - 1; i++) {
- for (j = 0; j < e; j++) {
- if (dist[arr[j].u] != Integer.MAX_VALUE && dist[arr[j].v] > dist[arr[j].u] + arr[j].w) {
- dist[arr[j].v] = dist[arr[j].u] + arr[j].w; // Update
- p[arr[j].v] = arr[j].u;
- }
- }
- }
- // Final cycle for negative checking
- for (j = 0; j < e; j++) {
- if (dist[arr[j].u] != Integer.MAX_VALUE && dist[arr[j].v] > dist[arr[j].u] + arr[j].w) {
- neg = 1;
- System.out.println("Negative cycle");
- break;
- }
- }
- if (neg == 0) { // Go ahead and show results of computation
- System.out.println("Distances are: ");
- for (i = 0; i < v; i++) {
- System.out.println(i + " " + dist[i]);
- }
- System.out.println("Path followed:");
- for (i = 0; i < v; i++) {
- System.out.print("0 ");
- printPath(p, i);
- System.out.println();
- }
- }
+ { … 58 line(s) … ⟦tj:d71d045ee7d9955563c90bbd81269834⟧ }
}
- }
/**
* @param source Starting vertex
@@ -130,44 +72,8 @@
Edge[] arr) { // be created by using addEdge() method and passed by calling getEdgeArray()
// method // Just shows results of computation, if graph is passed to it. The
// graph should
- int i;
- int j;
- int v = vertex;
- int e = edge;
- int neg = 0;
- double[] dist = new double[v]; // Distance array for holding the finalized shortest path
- // distance between source
- // and all vertices
- int[] p = new int[v]; // Parent array for holding the paths
- for (i = 0; i < v; i++) {
- dist[i] = Integer.MAX_VALUE; // Initializing distance values
+ { … 36 line(s) … ⟦tj:393fa203f1efbb22cd2130cc6b6a4b8f⟧ }
}
- dist[source] = 0;
- p[source] = -1;
- for (i = 0; i < v - 1; i++) {
- for (j = 0; j < e; j++) {
- if ((int) dist[arr[j].u] != Integer.MAX_VALUE && dist[arr[j].v] > dist[arr[j].u] + arr[j].w) {
- dist[arr[j].v] = dist[arr[j].u] + arr[j].w; // Update
- p[arr[j].v] = arr[j].u;
- }
- }
- }
- // Final cycle for negative checking
- for (j = 0; j < e; j++) {
- if ((int) dist[arr[j].u] != Integer.MAX_VALUE && dist[arr[j].v] > dist[arr[j].u] + arr[j].w) {
- neg = 1;
- System.out.println("Negative cycle");
- break;
- }
- }
- if (neg == 0) { // Go ahead and show results of computation
- System.out.println("Distance is: " + dist[end]);
- System.out.println("Path followed:");
- System.out.print(source + " ");
- printPath(p, end);
- System.out.println();
- }
- }
/**
* @param x Source Vertex
@@ -182,3 +88,6 @@
return edges;
}
}
+[omitted blocks are individually retrievable: call tinyjuice_retrieve with the token inside an omission marker to expand just that block]
+
+[PARTIAL view — full original (6103 bytes): call tinyjuice_retrieve with token "9311b1cc15f9435d5f5e7dec82957066"]
\ No newline at end of file