Ejemplo n.º 1
0
        public StrongComponents(IGraph graph, Flags flags = 0)
        {
            Graph = graph;
            if (0 != (flags & Flags.CreateComponents))
            {
                Components = new List <HashSet <Node> >();
            }

            var forwardDfs = new ForwardDfs();

            forwardDfs.Run(graph);
            var backwardDfs = new BackwardDfs {
                Parent = this
            };

            backwardDfs.Run(graph, forwardDfs.ReverseExitOrder);
        }
Ejemplo n.º 2
0
        public StrongComponents(IGraph graph, Flags flags = Flags.None)
        {
            Graph = graph;
            if ((flags & Flags.CreateComponents) != 0)
            {
                Components = new List <HashSet <Node> >();
            }
            ForwardDfs forwardDfs = new ForwardDfs();

            forwardDfs.Run(graph, null);
            BackwardDfs backwardDfs = new BackwardDfs
            {
                Parent = this
            };

            backwardDfs.Run(graph, forwardDfs.ReverseExitOrder);
        }