/// <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)); }
public WeightedFuncMapSpp(SppFactory <TVertex> factory, FuncReadOnlyMap <TVertex, Edge <TVertex>[]> nextEdgesMap) : base(factory) { NextEdgesMap = nextEdgesMap; }
/// <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)); }
public UnweightedFuncMapSpp(SppFactory <TVertex> factory, FuncReadOnlyMap <TVertex, TVertex[]> nextVertexesMap) : base(factory) { NextVertexesMap = nextVertexesMap; }