冗余节点清理

时间:2018-03-10 21:47:32

标签: java algorithm nodes directed-acyclic-graphs

我正在尝试清理我在JAVA中实现的一组节点,以创建一个有向无环图。我有一个Java集,在我的最终图中有我想要的每个节点,但是一些节点ID是相同的。当我尝试组合具有相同ID的节点时,如果它们具有相同的childList,则会遇到问题。由于childList是一个JAVA链接列表,我无法在不随后更改其他节点的子节点的情况下将childList添加或更改为其中一个节点。

我试图取消引用每个链接列表,以便我可以更改节点的子节点而不会产生击倒效果,但是我很难找到它的代码。例如,如果你看下面的话,当我试图通过移动一个子节点时,将节点Surday(使用HashCode引用src.java.GNode@5)与另一个名为Surday的节点(引用src.java.GNode@3)组合在一起。另一方面,我不能在不改变Suday和Sunrday节点的子节点的情况下这样做(src.java.GNode@2和src.java.GNode@1)。

Node: Sunday Node HashCode Reference: src.java.GNode@0
Node: Sunrday Children: src.java.GNode@0  Children: src.java.GNode@1  
Node HashCode Reference: src.java.GNode@1

Node: Suday Children: src.java.GNode@0  Children: src.java.GNode@1  
Node HashCode Reference: src.java.GNode@2

Node: Surday Children: src.java.GNode@0  Children: src.java.GNode@1  
Node HashCode Reference: src.java.GNode@3

Node: Surday Children: src.java.GNode@1  Node HashCode Reference: src.java.GNode@4

Node: Surday Children: src.java.GNode@2  Node HashCode Reference: src.java.GNode@5

Node: Sturday Children: src.java.GNode@3  Node HashCode Reference: src.java.GNode@6

Node: Sturday Children: src.java.GNode@4  Node HashCode Reference: src.java.GNode@7

Node: Sturday Children: src.java.GNode@5  Node HashCode Reference: src.java.GNode@8

Node: Saturday Children: src.java.GNode@6  Children: src.java.GNode@7  Children: src.java.GNode@8  Node HashCode Reference: src.java.GNode@c

有没有人对如何解决此问题有任何想法?我正在考虑由于需要更改这些节点而不会对子列表产生任何影响,我可以将子列表放入字符串数组中,但是我可视化我的算法的以下代码会受到很大影响。

谢谢。

0 个答案:

没有答案