/// <inheritdoc /> protected override void Initialize() { base.Initialize(); FoundNegativeCycle = false; // Initialize colors and distances VerticesColors.Clear(); foreach (TVertex vertex in VisitedGraph.Vertices) { VerticesColors[vertex] = GraphColor.White; SetVertexDistance(vertex, double.PositiveInfinity); OnInitializeVertex(vertex); } if (!TryGetRootVertex(out TVertex root)) { // Try to fallback on first vertex, will throw if the graph is empty root = VisitedGraph.Vertices.First(); } else if (!VisitedGraph.ContainsVertex(root)) { throw new VertexNotFoundException("Root vertex is not part of the graph."); } SetVertexDistance(root, 0); }
/// <inheritdoc /> protected override void Initialize() { base.Initialize(); Successors.Clear(); VerticesColors.Clear(); foreach (TVertex vertex in VisitedGraph.Vertices) { VerticesColors.Add(vertex, GraphColor.White); OnInitializeVertex(vertex); } }
/// <inheritdoc /> protected override void Initialize() { base.Initialize(); // Put all vertex to white VerticesColors.Clear(); foreach (TVertex vertex in VisitedGraph.Vertices) { VerticesColors[vertex] = GraphColor.White; OnVertexInitialized(vertex); } }
/// <inheritdoc /> protected override void Initialize() { base.Initialize(); VerticesColors.Clear(); _costs = new Dictionary <TVertex, double>(VisitedGraph.VertexCount); // Initialize colors and distances double initialDistance = DistanceRelaxer.InitialDistance; foreach (TVertex vertex in VisitedGraph.Vertices) { VerticesColors.Add(vertex, GraphColor.White); SetVertexDistance(vertex, initialDistance); _costs.Add(vertex, initialDistance); } _vertexQueue = new FibonacciQueue <TVertex, double>(_costs, DistanceRelaxer.Compare); }
/// <inheritdoc /> protected override void Initialize() { base.Initialize(); FoundNegativeCycle = false; // Initialize colors and distances VerticesColors.Clear(); foreach (TVertex vertex in VisitedGraph.Vertices) { VerticesColors[vertex] = GraphColor.White; Distances[vertex] = double.PositiveInfinity; OnInitializeVertex(vertex); } if (!TryGetRootVertex(out TVertex root)) { // Try to fallback on first vertex, will throw if the graph is empty root = VisitedGraph.Vertices.First(); } Distances[root] = 0; }