将区间拆分

代码:

package com.test;

import lombok.Data;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * @classname: TestNode
 * @description: 将区间拆分
 * @create: 2020/09/28
 */
public class TestNode {
    @Data
    public static class Edge
    {
        public Edge(int start, int end, String info) {
            this.start = new Node(start, 0, info);
            this.end = new Node(end, 1, info);
            this.info = info;
            this.flag = false;
        }

        boolean contain(Node node) {
            return start.equals(node) || end.equals(node);
        }

        Node start;
        Node end;
        String info;
        boolean flag;

        public boolean getFlag() {
            return flag;
        }
    }

    @Data
    public static class Node implements Comparable<Node>
    {
        public Node(int time, int flag) {
            this.time = time;
            this.flag = flag;
        }

        public Node(int time, int flag, String edgeName) {
            this.time = time;
            this.flag = flag;
            this.edgeName = edgeName;
        }

        int time;
        int flag = 0;
        String edgeName;

        @Override
        public int compareTo(Node o) {
            return this.time >= o.getTime() ? 1 : -1;
        }
    }


    public static Edge getEdge(Node node, List<Edge> edges)
    {
        for (Edge edge : edges) {
            if (edge.getInfo().equals(node.getEdgeName())) {
                return edge;
            }
        }
        return null;
    }

    public static void main(String[] args)
    {
        List<Edge> edges = new ArrayList<>();
        edges.add(new Edge(0, 10, "A0"));
        edges.add(new Edge(11, 20, "A1"));
        edges.add(new Edge(2, 5, "B0"));
        edges.add(new Edge(8, 16, "B1"));
        edges.add(new Edge(18, 20, "B2"));
        edges.add(new Edge(1, 18, "C0"));
        edges.add(new Edge(21, 22, "C1"));
        edges.add(new Edge(0, 14, "D0"));

        List<Node> nodes = new ArrayList<>();
        for (Edge edge : edges) {
            nodes.add(edge.getStart());
            nodes.add(edge.getEnd());
        }

        // 节点排序
        Collections.sort(nodes);
        // 节点分层保存
        List<List<Node>> edgeList = new ArrayList<>();
        for (Node node : nodes) {
            if (edgeList.isEmpty()) {
                edgeList.add(new ArrayList<>());
                edgeList.get(edgeList.size() - 1).add(node);
                continue;
            }

            List<Node> last = edgeList.get(edgeList.size() - 1);
            if (node.getFlag() == 1) {
                if (last.isEmpty()) {
                    edgeList.get(edgeList.size() - 1).add(node);
                    edgeList.add(new ArrayList<>());
                    continue;
                }

                if (last.get(last.size() - 1).getFlag() == 0) {
                    edgeList.get(edgeList.size() - 1).add(node);
                    edgeList.add(new ArrayList<>());
                } else {
                    if (last.get(last.size() - 1).getTime() != node.getTime()) {
                        edgeList.add(new ArrayList<>());
                    }
                    edgeList.get(edgeList.size() - 1).add(node);
                }
            } else {
                edgeList.get(edgeList.size() - 1).add(node);
            }
        }

        // 结果集
        List<List<Edge>> result = new ArrayList<>();

        for (List<Node> nodes1 : edgeList) {
            if (nodes1.isEmpty()) {
                continue;
            }

            result.add(new ArrayList<>());

            for (Node node : nodes1) {
                Edge edge = getEdge(node, edges);
                if (edge == null || edge.getFlag() || result.get(result.size() - 1).contains(edge)) {
                    continue;
                }
                result.get(result.size() - 1).add(edge);
            }

            // 将上一层中未结束的边加入列表
            if (result.size() > 1) {
                List<Edge> ll = result.get(result.size() - 2);
                for (Edge edge : ll) {
                    if (!edge.getFlag() && !result.get(result.size() - 1).contains(edge)) {
                        result.get(result.size() - 1).add(edge);
                    }
                }
            }

            // 尾节点的边设置为结束
            getEdge(nodes1.get(nodes1.size() - 1), edges).setFlag(true);


            System.out.println(result);
        }
    }
}

结果:

[[TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=A0), end=TestNode.Node(time=10, flag=1, edgeName=A0), info=A0, flag=false), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=D0), end=TestNode.Node(time=14, flag=1, edgeName=D0), info=D0, flag=false), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=false), TestNode.Edge(start=TestNode.Node(time=2, flag=0, edgeName=B0), end=TestNode.Node(time=5, flag=1, edgeName=B0), info=B0, flag=true)]]
[[TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=A0), end=TestNode.Node(time=10, flag=1, edgeName=A0), info=A0, flag=true), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=D0), end=TestNode.Node(time=14, flag=1, edgeName=D0), info=D0, flag=false), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=false), TestNode.Edge(start=TestNode.Node(time=2, flag=0, edgeName=B0), end=TestNode.Node(time=5, flag=1, edgeName=B0), info=B0, flag=true)], [TestNode.Edge(start=TestNode.Node(time=8, flag=0, edgeName=B1), end=TestNode.Node(time=16, flag=1, edgeName=B1), info=B1, flag=false), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=A0), end=TestNode.Node(time=10, flag=1, edgeName=A0), info=A0, flag=true), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=D0), end=TestNode.Node(time=14, flag=1, edgeName=D0), info=D0, flag=false), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=false)]]
[[TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=A0), end=TestNode.Node(time=10, flag=1, edgeName=A0), info=A0, flag=true), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=D0), end=TestNode.Node(time=14, flag=1, edgeName=D0), info=D0, flag=true), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=false), TestNode.Edge(start=TestNode.Node(time=2, flag=0, edgeName=B0), end=TestNode.Node(time=5, flag=1, edgeName=B0), info=B0, flag=true)], [TestNode.Edge(start=TestNode.Node(time=8, flag=0, edgeName=B1), end=TestNode.Node(time=16, flag=1, edgeName=B1), info=B1, flag=false), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=A0), end=TestNode.Node(time=10, flag=1, edgeName=A0), info=A0, flag=true), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=D0), end=TestNode.Node(time=14, flag=1, edgeName=D0), info=D0, flag=true), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=false)], [TestNode.Edge(start=TestNode.Node(time=11, flag=0, edgeName=A1), end=TestNode.Node(time=20, flag=1, edgeName=A1), info=A1, flag=false), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=D0), end=TestNode.Node(time=14, flag=1, edgeName=D0), info=D0, flag=true), TestNode.Edge(start=TestNode.Node(time=8, flag=0, edgeName=B1), end=TestNode.Node(time=16, flag=1, edgeName=B1), info=B1, flag=false), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=false)]]
[[TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=A0), end=TestNode.Node(time=10, flag=1, edgeName=A0), info=A0, flag=true), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=D0), end=TestNode.Node(time=14, flag=1, edgeName=D0), info=D0, flag=true), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=false), TestNode.Edge(start=TestNode.Node(time=2, flag=0, edgeName=B0), end=TestNode.Node(time=5, flag=1, edgeName=B0), info=B0, flag=true)], [TestNode.Edge(start=TestNode.Node(time=8, flag=0, edgeName=B1), end=TestNode.Node(time=16, flag=1, edgeName=B1), info=B1, flag=true), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=A0), end=TestNode.Node(time=10, flag=1, edgeName=A0), info=A0, flag=true), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=D0), end=TestNode.Node(time=14, flag=1, edgeName=D0), info=D0, flag=true), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=false)], [TestNode.Edge(start=TestNode.Node(time=11, flag=0, edgeName=A1), end=TestNode.Node(time=20, flag=1, edgeName=A1), info=A1, flag=false), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=D0), end=TestNode.Node(time=14, flag=1, edgeName=D0), info=D0, flag=true), TestNode.Edge(start=TestNode.Node(time=8, flag=0, edgeName=B1), end=TestNode.Node(time=16, flag=1, edgeName=B1), info=B1, flag=true), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=false)], [TestNode.Edge(start=TestNode.Node(time=8, flag=0, edgeName=B1), end=TestNode.Node(time=16, flag=1, edgeName=B1), info=B1, flag=true), TestNode.Edge(start=TestNode.Node(time=11, flag=0, edgeName=A1), end=TestNode.Node(time=20, flag=1, edgeName=A1), info=A1, flag=false), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=false)]]
[[TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=A0), end=TestNode.Node(time=10, flag=1, edgeName=A0), info=A0, flag=true), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=D0), end=TestNode.Node(time=14, flag=1, edgeName=D0), info=D0, flag=true), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=true), TestNode.Edge(start=TestNode.Node(time=2, flag=0, edgeName=B0), end=TestNode.Node(time=5, flag=1, edgeName=B0), info=B0, flag=true)], [TestNode.Edge(start=TestNode.Node(time=8, flag=0, edgeName=B1), end=TestNode.Node(time=16, flag=1, edgeName=B1), info=B1, flag=true), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=A0), end=TestNode.Node(time=10, flag=1, edgeName=A0), info=A0, flag=true), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=D0), end=TestNode.Node(time=14, flag=1, edgeName=D0), info=D0, flag=true), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=true)], [TestNode.Edge(start=TestNode.Node(time=11, flag=0, edgeName=A1), end=TestNode.Node(time=20, flag=1, edgeName=A1), info=A1, flag=false), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=D0), end=TestNode.Node(time=14, flag=1, edgeName=D0), info=D0, flag=true), TestNode.Edge(start=TestNode.Node(time=8, flag=0, edgeName=B1), end=TestNode.Node(time=16, flag=1, edgeName=B1), info=B1, flag=true), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=true)], [TestNode.Edge(start=TestNode.Node(time=8, flag=0, edgeName=B1), end=TestNode.Node(time=16, flag=1, edgeName=B1), info=B1, flag=true), TestNode.Edge(start=TestNode.Node(time=11, flag=0, edgeName=A1), end=TestNode.Node(time=20, flag=1, edgeName=A1), info=A1, flag=false), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=true)], [TestNode.Edge(start=TestNode.Node(time=18, flag=0, edgeName=B2), end=TestNode.Node(time=20, flag=1, edgeName=B2), info=B2, flag=false), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=true), TestNode.Edge(start=TestNode.Node(time=11, flag=0, edgeName=A1), end=TestNode.Node(time=20, flag=1, edgeName=A1), info=A1, flag=false)]]
[[TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=A0), end=TestNode.Node(time=10, flag=1, edgeName=A0), info=A0, flag=true), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=D0), end=TestNode.Node(time=14, flag=1, edgeName=D0), info=D0, flag=true), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=true), TestNode.Edge(start=TestNode.Node(time=2, flag=0, edgeName=B0), end=TestNode.Node(time=5, flag=1, edgeName=B0), info=B0, flag=true)], [TestNode.Edge(start=TestNode.Node(time=8, flag=0, edgeName=B1), end=TestNode.Node(time=16, flag=1, edgeName=B1), info=B1, flag=true), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=A0), end=TestNode.Node(time=10, flag=1, edgeName=A0), info=A0, flag=true), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=D0), end=TestNode.Node(time=14, flag=1, edgeName=D0), info=D0, flag=true), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=true)], [TestNode.Edge(start=TestNode.Node(time=11, flag=0, edgeName=A1), end=TestNode.Node(time=20, flag=1, edgeName=A1), info=A1, flag=true), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=D0), end=TestNode.Node(time=14, flag=1, edgeName=D0), info=D0, flag=true), TestNode.Edge(start=TestNode.Node(time=8, flag=0, edgeName=B1), end=TestNode.Node(time=16, flag=1, edgeName=B1), info=B1, flag=true), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=true)], [TestNode.Edge(start=TestNode.Node(time=8, flag=0, edgeName=B1), end=TestNode.Node(time=16, flag=1, edgeName=B1), info=B1, flag=true), TestNode.Edge(start=TestNode.Node(time=11, flag=0, edgeName=A1), end=TestNode.Node(time=20, flag=1, edgeName=A1), info=A1, flag=true), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=true)], [TestNode.Edge(start=TestNode.Node(time=18, flag=0, edgeName=B2), end=TestNode.Node(time=20, flag=1, edgeName=B2), info=B2, flag=false), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=true), TestNode.Edge(start=TestNode.Node(time=11, flag=0, edgeName=A1), end=TestNode.Node(time=20, flag=1, edgeName=A1), info=A1, flag=true)], [TestNode.Edge(start=TestNode.Node(time=11, flag=0, edgeName=A1), end=TestNode.Node(time=20, flag=1, edgeName=A1), info=A1, flag=true), TestNode.Edge(start=TestNode.Node(time=18, flag=0, edgeName=B2), end=TestNode.Node(time=20, flag=1, edgeName=B2), info=B2, flag=false)]]
[[TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=A0), end=TestNode.Node(time=10, flag=1, edgeName=A0), info=A0, flag=true), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=D0), end=TestNode.Node(time=14, flag=1, edgeName=D0), info=D0, flag=true), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=true), TestNode.Edge(start=TestNode.Node(time=2, flag=0, edgeName=B0), end=TestNode.Node(time=5, flag=1, edgeName=B0), info=B0, flag=true)], [TestNode.Edge(start=TestNode.Node(time=8, flag=0, edgeName=B1), end=TestNode.Node(time=16, flag=1, edgeName=B1), info=B1, flag=true), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=A0), end=TestNode.Node(time=10, flag=1, edgeName=A0), info=A0, flag=true), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=D0), end=TestNode.Node(time=14, flag=1, edgeName=D0), info=D0, flag=true), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=true)], [TestNode.Edge(start=TestNode.Node(time=11, flag=0, edgeName=A1), end=TestNode.Node(time=20, flag=1, edgeName=A1), info=A1, flag=true), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=D0), end=TestNode.Node(time=14, flag=1, edgeName=D0), info=D0, flag=true), TestNode.Edge(start=TestNode.Node(time=8, flag=0, edgeName=B1), end=TestNode.Node(time=16, flag=1, edgeName=B1), info=B1, flag=true), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=true)], [TestNode.Edge(start=TestNode.Node(time=8, flag=0, edgeName=B1), end=TestNode.Node(time=16, flag=1, edgeName=B1), info=B1, flag=true), TestNode.Edge(start=TestNode.Node(time=11, flag=0, edgeName=A1), end=TestNode.Node(time=20, flag=1, edgeName=A1), info=A1, flag=true), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=true)], [TestNode.Edge(start=TestNode.Node(time=18, flag=0, edgeName=B2), end=TestNode.Node(time=20, flag=1, edgeName=B2), info=B2, flag=true), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=true), TestNode.Edge(start=TestNode.Node(time=11, flag=0, edgeName=A1), end=TestNode.Node(time=20, flag=1, edgeName=A1), info=A1, flag=true)], [TestNode.Edge(start=TestNode.Node(time=11, flag=0, edgeName=A1), end=TestNode.Node(time=20, flag=1, edgeName=A1), info=A1, flag=true), TestNode.Edge(start=TestNode.Node(time=18, flag=0, edgeName=B2), end=TestNode.Node(time=20, flag=1, edgeName=B2), info=B2, flag=true)], [TestNode.Edge(start=TestNode.Node(time=18, flag=0, edgeName=B2), end=TestNode.Node(time=20, flag=1, edgeName=B2), info=B2, flag=true)]]
[[TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=A0), end=TestNode.Node(time=10, flag=1, edgeName=A0), info=A0, flag=true), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=D0), end=TestNode.Node(time=14, flag=1, edgeName=D0), info=D0, flag=true), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=true), TestNode.Edge(start=TestNode.Node(time=2, flag=0, edgeName=B0), end=TestNode.Node(time=5, flag=1, edgeName=B0), info=B0, flag=true)], [TestNode.Edge(start=TestNode.Node(time=8, flag=0, edgeName=B1), end=TestNode.Node(time=16, flag=1, edgeName=B1), info=B1, flag=true), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=A0), end=TestNode.Node(time=10, flag=1, edgeName=A0), info=A0, flag=true), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=D0), end=TestNode.Node(time=14, flag=1, edgeName=D0), info=D0, flag=true), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=true)], [TestNode.Edge(start=TestNode.Node(time=11, flag=0, edgeName=A1), end=TestNode.Node(time=20, flag=1, edgeName=A1), info=A1, flag=true), TestNode.Edge(start=TestNode.Node(time=0, flag=0, edgeName=D0), end=TestNode.Node(time=14, flag=1, edgeName=D0), info=D0, flag=true), TestNode.Edge(start=TestNode.Node(time=8, flag=0, edgeName=B1), end=TestNode.Node(time=16, flag=1, edgeName=B1), info=B1, flag=true), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=true)], [TestNode.Edge(start=TestNode.Node(time=8, flag=0, edgeName=B1), end=TestNode.Node(time=16, flag=1, edgeName=B1), info=B1, flag=true), TestNode.Edge(start=TestNode.Node(time=11, flag=0, edgeName=A1), end=TestNode.Node(time=20, flag=1, edgeName=A1), info=A1, flag=true), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=true)], [TestNode.Edge(start=TestNode.Node(time=18, flag=0, edgeName=B2), end=TestNode.Node(time=20, flag=1, edgeName=B2), info=B2, flag=true), TestNode.Edge(start=TestNode.Node(time=1, flag=0, edgeName=C0), end=TestNode.Node(time=18, flag=1, edgeName=C0), info=C0, flag=true), TestNode.Edge(start=TestNode.Node(time=11, flag=0, edgeName=A1), end=TestNode.Node(time=20, flag=1, edgeName=A1), info=A1, flag=true)], [TestNode.Edge(start=TestNode.Node(time=11, flag=0, edgeName=A1), end=TestNode.Node(time=20, flag=1, edgeName=A1), info=A1, flag=true), TestNode.Edge(start=TestNode.Node(time=18, flag=0, edgeName=B2), end=TestNode.Node(time=20, flag=1, edgeName=B2), info=B2, flag=true)], [TestNode.Edge(start=TestNode.Node(time=18, flag=0, edgeName=B2), end=TestNode.Node(time=20, flag=1, edgeName=B2), info=B2, flag=true)], [TestNode.Edge(start=TestNode.Node(time=21, flag=0, edgeName=C1), end=TestNode.Node(time=22, flag=1, edgeName=C1), info=C1, flag=true)]]

 

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页