Exemple #1
0
        /// <summary>
        /// 隣接辺を動的に取得するための関数を指定します。
        /// </summary>
        /// <param name="getNextEdges">指定された頂点からの出辺を取得するための関数。</param>
        /// <returns>アルゴリズムを実行するためのオブジェクト。</returns>
        public WeightedFuncMapSpp <TVertex> ForWeightedMap(Func <TVertex, Edge <TVertex>[]> getNextEdges)
        {
            var map = new FuncReadOnlyMap <TVertex, Edge <TVertex>[]>(getNextEdges);

            return(new WeightedFuncMapSpp <TVertex>(this, map));
        }
Exemple #2
0
 public WeightedFuncMapSpp(SppFactory <TVertex> factory, FuncReadOnlyMap <TVertex, Edge <TVertex>[]> nextEdgesMap) : base(factory)
 {
     NextEdgesMap = nextEdgesMap;
 }
Exemple #3
0
        /// <summary>
        /// 隣接頂点を動的に取得するための関数を指定します。
        /// </summary>
        /// <param name="getNextVertexes">指定された頂点からの行先となる頂点を取得するための関数。</param>
        /// <returns>アルゴリズムを実行するためのオブジェクト。</returns>
        public UnweightedFuncMapSpp <TVertex> ForUnweightedMap(Func <TVertex, TVertex[]> getNextVertexes)
        {
            var map = new FuncReadOnlyMap <TVertex, TVertex[]>(getNextVertexes);

            return(new UnweightedFuncMapSpp <TVertex>(this, map));
        }
Exemple #4
0
 public UnweightedFuncMapSpp(SppFactory <TVertex> factory, FuncReadOnlyMap <TVertex, TVertex[]> nextVertexesMap) : base(factory)
 {
     NextVertexesMap = nextVertexesMap;
 }