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 秒)

复制代码
  矩阵引擎-遍历算法代码如下

   参数表遍历算法,矩阵引擎的一个模块,排序过程
    使用递归算法,嵌套函数模块
    必须使用递归模式,2个嵌套循环无法遍历排序完成一个复杂的矩阵参数表
     */
    public void ParamFileOutputValue(String paramfile) {

        String s = "";
        String sp = "";
        String ssp = "";

        List<String> list = new ArrayList<String>();
        int p = 0;
        int k = 0;
        //这个地方要修改为整个参数表的最大行数,而不是起始点行数!!
        s = this.ParamlineScanner(paramfile).substring(1, 2);
        p = Integer.parseInt(s);
        k = ParamlineScanOutput(paramfile);

        //  System.out.println(ParamlineScanOutput(paramfile));
        //  System.out.println(this.ParamlineScanner(paramfile).substring(4, 7));
        System.out.println("矩阵参数表遍历算法启动,输出:");

        if (this.ParamlineScanner(paramfile).substring(4, 7).equals("起始点")) {
            System.out.println(this.ParamSubscriptScanner(paramfile).get(p - 1).toString());
            System.out.println("起始点的下一个邻接点是:" + this.ParamSubscriptScanner(paramfile).get(p - 1).toString().substring(7, 12));
            sp = this.ParamSubscriptScanner(paramfile).get(p - 1).toString().substring(7, 12);
            //    K1 = sp;
            for (int i = 0; i <= k - 1; i++) {
                //输出所有的节点标签
               
                //进行对比,如何进行全部参数的对比,并输出?
                if (this.ParamSubscriptScanner(paramfile).get(i).toString().substring(1, 6).equals(sp)) {
                    //输出下一批邻接点,继续进行搜索和对比,直到达到最后一个节点

                    System.out.println("下一个邻接点是:" + this.ParamSubscriptScanner(paramfile).get(i).toString().substring(7, 12));
                    ssp = this.ParamSubscriptScanner(paramfile).get(i).toString().substring(7, 12);

                    for (int j = 0; j < k - 1; j++) {

                        if (this.ParamSubscriptScanner(paramfile).get(j).toString().substring(1, 6).equals(ssp)) {

                            System.out.println("再下一个邻接点是:" + this.ParamSubscriptScanner(paramfile).get(j).toString().substring(7, 12));

                        }
                    }
                }

            }

        }
        // 输出这行的节点标签内容:(node7,node6)的node7的下一个邻接点node6
        /*
              下标:(7,6): 节点标签:(node7,node6): 节点状态:(0,0): 节点标志:起始点 
              取出substring node6,作为对比字符串,搜索所有的参数表行数据,进行对比,输出下一个邻接点
              
         */

    }
相关推荐
IT古董1 小时前
【第五章:计算机视觉-项目实战之推荐/广告系统】2.粗排算法-(3)理解粗排模型之在线部分:在线架构及对双塔的应用
算法·1024程序员节
大数据张老师1 小时前
数据结构——平衡二叉树
数据结构·算法·查找
py有趣1 小时前
LeetCode算法学习之合并区间
学习·算法·leetcode
m0_748233642 小时前
单调栈详解【C/C++】
c语言·c++·算法·1024程序员节
郝学胜-神的一滴2 小时前
Linux中的`fork`函数详解:深入解析
linux·服务器·开发语言·c++·算法
大数据张老师3 小时前
数据结构——BF算法
数据结构·算法·1024程序员节
让我们一起加油好吗3 小时前
【数论】欧拉定理 && 扩展欧拉定理
c++·算法·数论·1024程序员节·欧拉定理·欧拉降幂·扩展欧拉定理
Yupureki3 小时前
从零开始的C++学习生活 14:map/set的使用和封装
c语言·数据结构·c++·学习·visual studio·1024程序员节
一匹电信狗3 小时前
【LeetCode_876_2.02】快慢指针在链表中的简单应用
c语言·数据结构·c++·算法·leetcode·链表·stl
胖咕噜的稞达鸭3 小时前
算法入门---专题二:滑动窗口2(最大连续1的个数,无重复字符的最长子串 )
c语言·数据结构·c++·算法·推荐算法·1024程序员节