0001 /* 0002 * (有向)图的顶点结构接口 0003 * 无向图也可以看成是有向图,为此,只需将每条无向边替换为对称的一对有向边 0004 */ 0005 0006 package dsa; 0007 0008 public interface Vertex { 0009 //常量 0010 final static int UNDISCOVERED = 0;//尚未被发现的顶点 0011 final static int DISCOVERED = 1;//已被发现的顶点 0012 final static int VISITED = 2;//已访问过的顶点 0013 0014 //返回当前顶点的信息 0015 public Object getInfo(); 0016 //将当前顶点的信息更新为x,并返回原先的信息 0017 public Object setInfo(Object x); 0018 0019 //返回当前顶点的出、入度 0020 public int outDeg(); 0021 public int inDeg(); 0022 0023 //返回当前顶点所有关联边、关联边位置的迭代器 0024 public Iterator inEdges(); 0025 public Iterator inEdgePositions(); 0026 public Iterator outEdges(); 0027 public Iterator outEdgePositions(); 0028 0029 //取当前顶点在所属的图的顶点集V中的位置 0030 public Position getVPosInV(); 0031 0032 //读取、设置顶点的状态(DFS + BFS) 0033 public int getStatus(); 0034 public int setStatus(int s); 0035 0036 //读取、设置顶点的时间标签(DFS) 0037 public int getDStamp(); 0038 public int setDStamp(int s); 0039 public int getFStamp(); 0040 public int setFStamp(int s); 0041 0042 //读取、设置顶点至起点的最短距离(BFS或BestFS) 0043 public int getDistance(); 0044 public int setDistance(int s); 0045 0046 //读取、设置顶点在的DFS、BFS、BestFS或MST树中的父亲 0047 public Vertex getBFSParent(); 0048 public Vertex setBFSParent(Vertex s); 0049 }