0001 /* 0002 * (有向)图基于DFS模板的可达分量算法 0003 */ 0004 0005 package dsa; 0006 0007 public class DFSReachableComponent extends DFS { 0008 //构造方法 0009 public DFSReachableComponent(Graph g) { super(g); } 0010 0011 //DFS过程中对顶点v的具体访问操作(info实际上是一个栈,记录所有可达的顶点) 0012 protected Object visit(Vertex v, Object info) 0013 { ((Stack)info).push(v); return null; } 0014 0015 //基于DFS的可达性算法:s为起始顶点(info实际上是一个栈,记录所有可达的顶点) 0016 public Object algorithm(Vertex s, Object info) { 0017 reset(s); 0018 Stack S = new Stack_Array();//保存从起始顶点可达的顶点 0019 traverse(s, info);//DFS 0020 return null; 0021 } 0022 }