private void DepthFirstSearch(Graph_Adjacency_List G, int vertex)
 {
     _hasBeenVisited[vertex]         = true;
     _connectedVertexIdGroup[vertex] = _count;
     foreach (var adjacentVertex in G.FindAdjacentVertices(vertex))
     {
         if (!_hasBeenVisited[adjacentVertex])
         {
             DepthFirstSearch(G, adjacentVertex);
         }
     }
 }
Example #2
0
        private void DepthFirstSearch(Graph_Adjacency_List G, int vertex)
        {
            _hasBeenVisited[vertex] = true;

            foreach (var adjacentVertex in G.FindAdjacentVertices(vertex))
            {
                if (!_hasBeenVisited[adjacentVertex])
                {
                    DepthFirstSearch(G, adjacentVertex);
                    edgeTo[adjacentVertex] = vertex;
                }
            }
        }
        private void BreadthFirstSearch(Graph_Adjacency_List G, int s)
        {
            Queue <int> queue = new Queue <int>();

            queue.Enqueue(s);
            marked[s] = true;

            while (queue.Count > 0)
            {
                int v = queue.Dequeue();

                foreach (var w in G.FindAdjacentVertices(v))
                {
                    if (!marked[w])
                    {
                        queue.Enqueue(w);
                        marked[w] = true;
                        edgeTo[w] = v;
                    }
                }
            }
        }