0001 /* 0002 * (有向)图结构接口 0003 * 无向图也可以看成是有向图,为此,只需将每条无向边替换为对称的一对有向边 0004 */ 0005 0006 package dsa; 0007 0008 public interface Graph { 0009 //取图中顶点、边的数目 0010 public int vNumber(); 0011 public int eNumber(); 0012 0013 //取图中所有顶点、顶点位置的迭代器 0014 public Iterator vertices(); 0015 public Iterator vPositions(); 0016 0017 //返回图中所有边、边位置的迭代器 0018 public Iterator edges(); 0019 public Iterator ePositions(); 0020 0021 //检测是否有某条边从顶点u指向v 0022 public boolean areAdjacent(Vertex u, Vertex v); 0023 //取从顶点u指向v的边,若不存在,则返回null 0024 public Edge edgeFromTo(Vertex u, Vertex v); 0025 0026 //将顶点v从顶点集中删除,并返回之 0027 public Vertex remove(Vertex v); 0028 //将边e从边集中删除,并返回之 0029 public Edge remove(Edge e); 0030 //在顶点集V中插入新顶点v,并返回其位置 0031 public Position insert(Vertex v); 0032 //在边集E中插入新边e,并返回其位置 0033 public Position insert(Edge e); 0034 }