Exemplo n.º 1
0
        IGraph ComputeReflexiveTransitiveClosure(
            IGraph firstGraph)
        {
            Closure closureComputer = new Closure( firstGraph );

            ListGraph closureGraph = new ListGraph( firstGraph );

            closureComputer.ReflexiveTransitive();

            return closureGraph;
        }
Exemplo n.º 2
0
        IGraph CreateFirstLevelGraph(
            Hashtable sets)
        {
            ListGraph firstLevelGraph = new ListGraph();

            Vertex emptyVertex = firstLevelGraph.AddVertex( Terminal.Empty );

            foreach ( object setObject in sets )
            {
                FirstSet firstSet = (FirstSet) setObject;

                Vertex nonTerminal = firstLevelGraph.AddVertex( firstSet );

                if ( firstSet.HasEmpty )
                {
                    firstLevelGraph.AddEdge(
                        nonTerminal,
                        emptyVertex );
                }
            }

            return firstLevelGraph;
        }
Exemplo n.º 3
0
 public ShortestPath( 
     ListGraph graph)
 {
     _graph = graph;
 }