Metro
Metro
project;
import java.util.Scanner;
import java.util.LinkedList;
import java.util.ArrayList;
class Vertex {
HashTable<String, Integer> nbrs = new HashTable<>();
}
public Metro() {
vtces = new HashTable<>();
}
vtces.remove(vname);
}
return count / 2;
}
vtx1.nbrs.put(vname2, value);
vtx2.nbrs.put(vname1, value);
}
vtx1.nbrs.remove(vname2);
vtx2.nbrs.remove(vname1);
}
System.out.println("--------------------------------------------------------------\
n");
ArrayList<String> keys = new ArrayList<>(vtces.keySet());
System.out.println("---------------------------------------------------\n");
processed.put(vname1, true);
return false;
}
@Override
public int compareTo(DijkstraPair o) {
return o.cost - this.cost;
}
}
if (key.equals(src)) {
np.cost = 0;
np.psf = key;
}
heap.add(np);
map.put(key, np);
}
while (!heap.isEmpty()) {
DijkstraPair rp = heap.remove();
if (rp.vname.equals(des)) {
val = rp.cost;
break;
}
map.remove(rp.vname);
ans.add(rp.vname);
Vertex v = vtces.get(rp.vname);
for (String nbr : v.nbrs.keySet()) {
if (map.containsKey(nbr)) {
int oc = map.get(nbr).cost;
Vertex k = vtces.get(rp.vname);
int nc;
if (nan)
nc = rp.cost + 120 + 40 * k.nbrs.get(nbr);
else
nc = rp.cost + k.nbrs.get(nbr);
heap.updatePriority(gp);
}
}
}
}
return val;
}
while (!stack.isEmpty()) {
Pair rp = stack.removeFirst();
if (processed.containsKey(rp.vname))
continue;
processed.put(rp.vname, true);
if (rp.vname.equals(dst)) {
int temp = rp.min_dis;
if (temp < min) {
ans = rp.psf;
min = temp;
}
continue;
}
stack.addFirst(sp);
while (!stack.isEmpty()) {
Pair rp = stack.removeFirst();
if (processed.containsKey(rp.vname))
continue;
processed.put(rp.vname, true);
if (rp.vname.equals(dst)) {
int temp = rp.min_time;
if (temp < min) {
ans = rp.psf;
min = temp;
}
continue;
}
if (s.length() == 2) {
String prev = res[i - 1].substring(res[i - 1].indexOf('~')
+ 1);
String next = res[i + 1].substring(res[i + 1].indexOf('~')
+ 1);
if (prev.equals(next))
arr.add(res[i]);
else {
arr.add(res[i] + " ==> " + res[i + 1]);
i++;
count++;
}
} else
arr.add(res[i]);
}
arr.add(Integer.toString(count));
arr.add(res[res.length - 1]);
return arr;
}
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
System.out.print("START ==> " + str.get(0) + " ==>
");
for (int i = 1; i < len - 3; i++) {
System.out.println(str.get(i));
}
System.out.print(str.get(len - 3) + " ==> END");
System.out.println("\
n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
}
break;
case 7:
System.out.println("THANKS FOR CHOOSING OUR APPLICATION
^_^");
System.exit(0);
default:
System.out.println("Please enter a valid option! ");
System.out.println("The options you can choose are from 1
to 6. ");
}
}