/* * (有向)图的深度优先遍历算法模板 */ 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;//然后回溯 } }
2021-07-30 00:56:24 3KB java dfs 分量算法 有向图 算法图解
1
Java通过POI读取Excel遍历数据,根本word模板批量生成word文档,demo可运行,可根据需求修改
1
ajax json 遍历json数组,json的说明文档,json操作说明
2021-07-26 12:37:21 964B ajax json 遍历json数组
1
MFC做的遍历文件,查找所有sql的脚本文件,并声称批处理文件。
2021-07-24 15:33:04 4.81MB 批处理生成
1
二叉树的建立和遍历操作.docx
2021-07-24 10:02:18 278KB 数据结构
本程序是基于学校matlab选修课的课设编写,大致内容为:给定一个被控对象的开环传函,采用嵌套for循环进行pid参数的选取,选取条件为人为给定的超调量和调整时间均小于一个恒定值,以这个恒定值作为是否跳出循环的关键,但要注意for循环中的步长需要自己设定,步长不同最终的结果也会不同,步长范围选对了,能找到合适的一组值,选不对就会找不到,当找到满足一组合适的条件后会自动跳出循环。分别做了PID、PI和P的三组整合,注意由于matlab矩阵运算快for循环运算慢当找不到合适参数时(你的步长给的特别小时)会很慢很慢大概5分钟左右(最后在命令行输出未找到),因此选择合适的步长很重要建议先用simulink仿真用试凑法大致确定一下参数在到工作空间中确定步长
1
Linux 刚刚开始学,挺实用的。Linux-C++-遍历指定文件夹路径下的文件列表并将路径写到txt文件。 如果没有积分,请私信我留下邮箱,我会尽快发过去
2021-07-21 21:35:07 1KB C++ Linux 路径遍历
1
在linux 下的用c实现的遍历指定文件夹下的所有文件,并读出文件中的内容
2021-07-21 21:27:29 2KB linux 遍历 文件夹 文件
1
主要实现根据日期和时间js循环读取文件夹里面的图片, 然后显示,有百叶窗,卷帘等效果
2021-07-20 16:31:49 3.95MB js .net
1
各种遍历和排序代码
2021-07-19 19:03:48 1.38MB 数据结构
1