Ejemplo n.º 1
0
        /// <summary>
        /// 构造方法
        /// </summary>
        /// <param name="adjacency"></param>
        /// <param name="s"></param>
        /// <param name="t"></param>
        public SingleSourcePath(IAdjacency adjacency, int s, int t)
        {
            _adjacency = adjacency;
            _adjacency.ValidateNumber(s);
            _adjacency.ValidateNumber(t);
            S        = s;
            T        = t;
            PreNodes = new int[_adjacency.V];
            _visited = new bool[_adjacency.V];
            for (int i = 0; i < PreNodes.Length; i++)
            {
                PreNodes[i] = -1;
            }

            Dfs(s, s);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 两个顶点是否属于同一个连通分量
 /// </summary>
 /// <param name="v"></param>
 /// <param name="w"></param>
 /// <returns></returns>
 public bool IsConnected(int v, int w)
 {
     _adjacency.ValidateNumber(v);
     _adjacency.ValidateNumber(w);
     return(_visited[v] == _visited[w]);
 }
Ejemplo n.º 3
0
 /// <summary>
 /// 两个顶点是否连通
 /// </summary>
 /// <param name="t"></param>
 /// <returns></returns>
 public bool IsConnected(int t)
 {
     _iaAdjacency.ValidateNumber(t);
     return(_visited[t]);
 }