Example #1
0
        private void Search(Graph g, int sourceVertex)
        {
            marked[sourceVertex] = true;
            count++;

            foreach (var vertex in g.AdjacentVertices(sourceVertex))
            {
                if (!marked[vertex])
                {
                    edgeTo[vertex] = sourceVertex;
                    Search(g, vertex);
                }
            }
        }
Example #2
0
        private void Search(Graph g, int sourceVertex)
        {
            marked[sourceVertex] = true;
            count++;

            foreach (var vertex in g.AdjacentVertices(sourceVertex))
            {
                if (!marked[vertex])
                {
                    edgeTo[vertex] = sourceVertex;
                    Search(g, vertex);
                }
            }
        }
        public static int NumberOfSelfLoops(this Graph g)
        {
            int count = 0;

            for (int i = 0; i < g.Vertices; i++)
            {
                foreach (var item in g.AdjacentVertices(i))
                {
                    if (item == i)
                    {
                        count++;
                    }
                }
            }

            return(count / 2);
        }
Example #4
0
        private void Search(Graph g, int vertex)
        {
            Queue<int> queue = new Queue<int>();
            queue.Enqueue(vertex);

            while (queue.Count != 0)
            {
                int element = queue.Dequeue();
                marked[element] = true;

                foreach (var item in g.AdjacentVertices(element))
                {
                    if (!marked[item])
                    {
                        marked[item] = true;
                        edgeTo[item] = vertex;
                        queue.Enqueue(item);
                    }
                }
            }
        }
Example #5
0
        private void Search(Graph g, int vertex)
        {
            Queue <int> queue = new Queue <int>();

            queue.Enqueue(vertex);

            while (queue.Count != 0)
            {
                int element = queue.Dequeue();
                marked[element] = true;

                foreach (var item in g.AdjacentVertices(element))
                {
                    if (!marked[item])
                    {
                        marked[item] = true;
                        edgeTo[item] = vertex;
                        queue.Enqueue(item);
                    }
                }
            }
        }
 public static int Degree(this Graph g, int v)
 {
     return(g.AdjacentVertices(v).Count());
 }