• JWFD开源工作流-矩阵引擎设计-遍历排序算法运行测试


          JWFD开源工作流-矩阵引擎设计-遍历算法运行测试

         使用下面的流程图-生成式矩阵和参数表,编写遍历排序算法,运行结果如下(test004.mtx,test004.parm)


    0 1 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 1
    1 0 0 1 0 1 1 0 1 0
    0 1 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0
    0 1 0 0 0 0 0 0 0 0
    0 1 0 0 0 0 0 0 0 0
    0 0 1 0 0 0 0 0 0 0
    0 1 0 0 0 0 0 0 0 0
    0 0 0 0 1 0 0 0 0 0

    下标:(8,1): 节点标签:(node8,node1): 节点状态:(0,0): 节点标志:普通点
    下标:(1,9): 节点标签:(node1,node9): 节点状态:(0,0): 节点标志:普通点
    下标:(5,1): 节点标签:(node5,node1): 节点状态:(0,0): 节点标志:普通点
    下标:(6,1): 节点标签:(node6,node1): 节点状态:(0,0): 节点标志:普通点
    下标:(2,0): 节点标签:(node2,node0): 节点状态:(0,0): 节点标志:普通点
    下标:(0,1): 节点标签:(node0,node1): 节点状态:(0,0): 节点标志:普通点
    下标:(7,2): 节点标签:(node7,node2): 节点状态:(0,0): 节点标志:起始点
    下标:(3,1): 节点标签:(node3,node1): 节点状态:(0,0): 节点标志:普通点
    下标:(2,6): 节点标签:(node2,node6): 节点状态:(0,0): 节点标志:普通点
    下标:(2,5): 节点标签:(node2,node5): 节点状态:(0,0): 节点标志:普通点
    下标:(2,8): 节点标签:(node2,node8): 节点状态:(0,0): 节点标志:普通点
    下标:(2,3): 节点标签:(node2,node3): 节点状态:(0,0): 节点标志:普通点
    下标:(9,4): 节点标签:(node9,node4): 节点状态:(0,0): 节点标志:普通点

     
     遍历算法函数运行输出结果    
     run:
    矩阵参数表遍历算法启动,输出:
    (node7,node2)
    起始点的下一个邻接点是:node2
    下一个邻接点是:node0
    再下一个邻接点是:node1
    下一个邻接点是:node6
    再下一个邻接点是:node1
    下一个邻接点是:node5
    再下一个邻接点是:node1
    下一个邻接点是:node8
    再下一个邻接点是:node1
    下一个邻接点是:node3
    再下一个邻接点是:node1
    成功构建 (总时间: 0 秒)

    1. 矩阵引擎-遍历算法代码如下
    2. 参数表遍历算法,矩阵引擎的一个模块,排序过程
    3. 使用递归算法,嵌套函数模块
    4. 必须使用递归模式,2个嵌套循环无法遍历排序完成一个复杂的矩阵参数表
    5. */
    6. public void ParamFileOutputValue(String paramfile) {
    7. String s = "";
    8. String sp = "";
    9. String ssp = "";
    10. List<String> list = new ArrayList<String>();
    11. int p = 0;
    12. int k = 0;
    13. //这个地方要修改为整个参数表的最大行数,而不是起始点行数!!
    14. s = this.ParamlineScanner(paramfile).substring(1, 2);
    15. p = Integer.parseInt(s);
    16. k = ParamlineScanOutput(paramfile);
    17. // System.out.println(ParamlineScanOutput(paramfile));
    18. // System.out.println(this.ParamlineScanner(paramfile).substring(4, 7));
    19. System.out.println("矩阵参数表遍历算法启动,输出:");
    20. if (this.ParamlineScanner(paramfile).substring(4, 7).equals("起始点")) {
    21. System.out.println(this.ParamSubscriptScanner(paramfile).get(p - 1).toString());
    22. System.out.println("起始点的下一个邻接点是:" + this.ParamSubscriptScanner(paramfile).get(p - 1).toString().substring(7, 12));
    23. sp = this.ParamSubscriptScanner(paramfile).get(p - 1).toString().substring(7, 12);
    24. // K1 = sp;
    25. for (int i = 0; i <= k - 1; i++) {
    26. //输出所有的节点标签
    27. //进行对比,如何进行全部参数的对比,并输出?
    28. if (this.ParamSubscriptScanner(paramfile).get(i).toString().substring(1, 6).equals(sp)) {
    29. //输出下一批邻接点,继续进行搜索和对比,直到达到最后一个节点
    30. System.out.println("下一个邻接点是:" + this.ParamSubscriptScanner(paramfile).get(i).toString().substring(7, 12));
    31. ssp = this.ParamSubscriptScanner(paramfile).get(i).toString().substring(7, 12);
    32. for (int j = 0; j < k - 1; j++) {
    33. if (this.ParamSubscriptScanner(paramfile).get(j).toString().substring(1, 6).equals(ssp)) {
    34. System.out.println("再下一个邻接点是:" + this.ParamSubscriptScanner(paramfile).get(j).toString().substring(7, 12));
    35. }
    36. }
    37. }
    38. }
    39. }
    40. // 输出这行的节点标签内容:(node7,node6)的node7的下一个邻接点node6
    41. /*
    42. 下标:(7,6): 节点标签:(node7,node6): 节点状态:(0,0): 节点标志:起始点
    43. 取出substring node6,作为对比字符串,搜索所有的参数表行数据,进行对比,输出下一个邻接点
    44. */
    45. }

  • 相关阅读:
    c语言经典测试题7
    HTML+CSS+JS大作业:生态环境网站设计——环境保护主题 大学生环保主题网页制
    资料分析笔记
    最新AI创作系统ChatGPT源码+搭建部署教程+支持GPT4.0+支持ai绘画(Midjourney)/支持Prompt
    matlab-day04
    排查线上问题的9种方式
    时间复杂度、空间复杂度 O(1)和 O(logN)
    ISCSI的部署与安装
    61-70==c++知识点
    [HDLBits] Exams/2014 q3fsm
  • 原文地址:https://blog.csdn.net/comsci/article/details/133455775