Example #1
0
 public void UndirectedCreateIsCorrectlyBuilt()
 {
     var input = CreateTestInput();
     var g = new Graph(GraphType.Undirected, input, 7);
     Assert.AreEqual(7, g.Vertices());
     Assert.AreEqual(10, g.Edges());
     Assert.AreEqual(3, g.Adjacent(0).Count);
     Assert.AreEqual(1, g.Adjacent(1).Count);
     Assert.AreEqual(2, g.Adjacent(2).Count);
     Assert.AreEqual(1, g.Adjacent(3).Count);
     Assert.AreEqual(0, g.Adjacent(4).Count);
     Assert.AreEqual(2, g.Adjacent(5).Count);
     Assert.AreEqual(1, g.Adjacent(6).Count);
 }
Example #2
0
File: Bfs.cs Project: Farga83/Algs4
 public void BreadthFirstSearch(Graph graph, int root)
 {
     var vertices = new Queue<int>();
     vertices.Enqueue(root);
     distTo[root] = 0;
     marked[root] = true;
     count++;
     while (vertices.Count > 0) {
         var currentVertice = vertices.Dequeue();
         foreach (var vert in graph.Adjacent(currentVertice)) {
             if (!marked[vert]) {
                 edgeTo[vert] = currentVertice;
                 distTo[vert] = distTo[currentVertice] + 1;
                 marked[vert] = true;
                 count++;
                 vertices.Enqueue(vert);
             }
         }
     }
 }