(有向)图的深度优先遍历算法模板算法(java源码)

上传者: hexiang221 | 上传时间: 2021-07-30 00:56:24 | 文件大小: 3KB | 文件类型: RAR
/* * (有向)图的深度优先遍历算法模板 */ package dsa; public abstract class DFS extends GraphTraverse { //变量 protected static int clock = 0;//遍历过程中使用的计时钟 //构造方法 public DFS(Graph g) { super(g); } //深度优先遍历算法 protected Object traverse(Vertex v, Object info) {//从顶点v出发,做深度优先查找 if (UNDISCOVERED != v.getStatus()) return null;//跳过已访问过的顶点(针对非连通图) v.setDStamp(clock++); v.setStatus(DISCOVERED); visit(v, info);//访问当前顶点 for (Iterator it = v.outEdges(); it.hasNext();) {//检查与顶点v Edge e = (Edge)it.getNext();//通过边e = (v, u) Vertex u = (Vertex)e.getVPosInV(1).getElem();//相联的每一顶点u switch (u.getStatus()) {//根据u当前的不同状态,分别做相应处理 case UNDISCOVERED ://若u尚未被发现,则 e.setType(TREE);//e被归类为“树边” traverse(u, info);//从u出发,继续做深度优先查找 break; case DISCOVERED ://若u已经被发现,但对其访问尚未结束,则 e.setType(BACKWARD);//将e归类为“后向跨边” break; default ://VISITED,即对u的访问已经结束 if (u.getDStamp() < v.getDStamp())//若相对于v,u被发现得更早,则 e.setType(CROSS);//将e归类为“横跨边” else//否则 e.setType(FORWARD);//将e归类为“前向跨边” break; } }//至此,v的所有邻居都已访问结束,故 v.setFStamp(clock++); v.setStatus(VISITED);//将v标记为VISITED return null;//然后回溯 } }

文件下载

资源详情

[{"title":"( 3 个子文件 3KB ) (有向)图的深度优先遍历算法模板算法(java源码)","children":[{"title":"(有向)图基于DFS模板的可达分量算法(java源码)","children":[{"title":"DFSReachableComponent.java <span style='color:#111;'> 634B </span>","children":null,"spread":false},{"title":"DFS.java <span style='color:#111;'> 1.38KB </span>","children":null,"spread":false},{"title":"GraphTraverse.java <span style='color:#111;'> 1.33KB </span>","children":null,"spread":false}],"spread":true}],"spread":true}]

评论信息

  • dfgdsfg4564 :
    不错的实现。
    2016-03-21
  • hqh0831 :
    挺好,代码实现的不错,根据自己情况可以二次开发
    2015-11-17
  • tenger1026 :
    挺好的,能很好的执行
    2013-08-16
  • meijiegeng :
    深度广度都可以实现
    2013-03-30

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明