当前位置: 代码迷 >> 综合 >> 将区间拆分
  详细解决方案

将区间拆分

热度:98   发布时间:2024-02-23 10:24:41.0

代码:

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 {@Datapublic 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;}}@Datapublic 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;@Overridepublic 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)]]

 

  相关解决方案