public void exercice2(){
if(this.type == 1){
ex2_result = 0;
//Using DFS
ex2_DFSNumInit();
System.out.println("ex : final weight = "+ ex2_result);
} else {
System.out.println("Can't run ex2 on an undirected graph");
}
}
public int ex2_result;
public void ex2_DFSNumInit(){
nb = 0;
// Checking for weighted or unweghted graph
if(this.weighted == 1) {
//INITIALISATION
d = new int[this.adjlistW.length];
f = new int[this.adjlistW.length];
//Visiting the whole graph
for (int i = 0; i < this.adjlistW.length; i++) {
d[i] = 0;
f[i] = 0;
}
for (int s = 0; s < this.adjlistW.length; s++) {
if (d[s] == 0) ex2_DFSNumRecursiveW(s);
}
}
}
private void ex2_DFSNumRecursiveW(int s){
nb++;
d[s] = nb;
//For each successor of s do...
WeightedNode4A node = this.adjlistW[s];
int successor=0;
while(node != null){
successor = node.getVal();
if(d[successor] == 0) ex2_DFSNumRecursiveW(successor);
if(node.getVal()%2 == 0){
System.out.println("ex2 : weight "+ node.getVal()+" of arc " + s + " --> " + successor);
ex2_result+= node.getVal();
}
node = node.getNext();
}
nb++;
f[s] = nb;
}