0001 /* 0002 * (有向)图的边结构接口 0003 * 无向图也可以看成是有向图,为此,只需将每条无向边替换为对称的一对有向边 0004 */ 0005 0006 package dsa; 0007 0008 public interface Edge { 0009 //常量 0010 final static int UNKNOWN = 0;//未知边 0011 final static int TREE = 1;//树边 0012 final static int CROSS = 2;//横跨边 0013 final static int FORWARD = 3;//前向跨边 0014 final static int BACKWARD = 4;//后向跨边 0015 0016 //返回当前边的信息(对于带权图,也就是各边的权重) 0017 public Object getInfo(); 0018 //将当前边的信息更新为x,并返回原先的信息 0019 public Object setInfo(Object x); 0020 0021 //取当前边在所属的图的边集E中的位置 0022 public Position getEPosInE(); 0023 //取v[i]在顶点集V中的位置(i=0或1,分别对应于起点、终点) 0024 public Position getVPosInV(int i); 0025 //当前边在其两个端点的关联边集I(v[i])中的位置 0026 public Position getEPosInI(int i); 0027 0028 //读取、设置边的类别(针对遍历) 0029 public int getType(); 0030 public int setType(int t); 0031 }