DFS
This commit is contained in:
parent
03599e5d6f
commit
f00d27589b
|
@ -478,8 +478,30 @@ class Graphs {
|
||||||
path = path.reversed.toList();
|
path = path.reversed.toList();
|
||||||
|
|
||||||
//print("Shortest path between vertices ${startDot+1} and ${goalDot+1} is: $path");
|
//print("Shortest path between vertices ${startDot+1} and ${goalDot+1} is: $path");
|
||||||
if (path[0]==startDot && path[1]==goalDot && !_dots[startDot].hasConnection(goalDot+1)) return null;
|
if (path[0] == (startDot+1) &&
|
||||||
|
path[1] == (goalDot+1) &&
|
||||||
|
!_dots[startDot].hasConnection(goalDot + 1)) return null;
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<bool>? dfsIterative(int v) {
|
||||||
|
v--;
|
||||||
|
List<bool> label = <bool>[];
|
||||||
|
for (int i = 0; i < _amount; i++) {
|
||||||
|
label.add(false);
|
||||||
|
}
|
||||||
|
List<int> stack = <int>[];
|
||||||
|
stack.add(v);
|
||||||
|
while (stack.isNotEmpty) {
|
||||||
|
v = stack.removeLast();
|
||||||
|
if (!label[v]) {
|
||||||
|
label[v] = true;
|
||||||
|
for (int i in _dots[v].getL().keys) {
|
||||||
|
stack.add(i-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return label;
|
||||||
|
}
|
||||||
//************Алгоритмы************
|
//************Алгоритмы************
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue