コード例 #1
0
        public GraphAdj GetTransposeGraph()
        {
            GraphAdj transposeGraph = new GraphAdj(this.V);

            transposeGraph.adj = new List <AdjNode> [this.V];
            for (int i = 0; i < this.V; i++)
            {
                transposeGraph.adj[i] = new List <AdjNode>();                //allocate actual memory
            }
            transposeGraph.Edges = new List <Edge>();
            foreach (var edge in this.Edges)
            {
                transposeGraph.AddEdge(new Edge(edge.To, edge.From, edge.IsDirected, edge.Weight));              // reverse to and from
            }
            return(transposeGraph);
        }