我有一长串日志,其中包含“Time | ID_node1 | ID_node2 | ConnectionUP或ConnectionDown”,这将是我的输入。
我想要的输出是从我选择的初始节点开始的已连接节点列表。我知道编写这类程序并不难。节点在连接列表中的规则很少:
到目前为止,当“初始活动节点”是使其他节点处于活动状态的唯一组时,我可以获得连接列表的列表。但是,我在添加规则时遇到问题“活动节点也可以使其他节点处于活动状态。”
以下示例可以帮助您理解:
1.0 p1 p3 UP
1.0 p4 p6 UP
1.0 p2 p5 UP
2.0 p2 p5 DOWN
2.0 P5 p8 UP
3.0 p5 p6 DOWN
7.0 p3 P8 UP
12.0 p3 p8 DOWN
13.0 p1 p3 DOWN
如果“P1”是初始活动节点,则按时间= 12.0,连接节点列表应包含{p1,p3,p8},因为当t = 6时p3变为活动节点。
如您所见,每秒的日志数量不同。所以我现在正在考虑:
List L1: Node1ID | Node2ID | Int
for (int i = 1, i <= t, i++) {
if L1 isEmpty()
JUST GO TO line 15
if L1 isNotEmpty()
ADD 1 to Int section
Check L1 contains 5 on Int section
if do()
ADD two nodes in ListofConnectedNode
Delete Duplicate in ListofConnectedNode
Also delete in L1
readALL log that has i
if Log contains UP,
ADD to List:L1 that has (Node1ID & Node2ID, 1)
if Log contains DOWN,
DELETE the list that contains both nodeIDs
}
你们认为这可以在JAVA中使用吗?或者有更好的方法来实现我想要的东西吗?