我正在研究一个我想通过图表旅行的问题。不过,我可以看到,当我编写我的代码时,图的构建是很重要的部分。 每个节点都应该有一个固定长度为M的值。该图应该包含所有基数为2的组合。因此,例如对于M = 3,我们有:“000”“001”“010”“011”“100”“101 “110”“111”,即2^M = 8个组合。如何优化图的构建?
然后我想以非常特定的方式将节点连接在一起。每个节点有两个outoing边缘,值为“0”和“1”。例如“000”将与边缘1连接到“001”,因为如果我将右边的第一个数字删除并在最后加上边缘值,我将以“001”结束。类似地,“111”通过边缘“0”连接到“110”。
需要帮助。请注意,节点不一定需要用String来表示,但这是我实现的方式,但似乎运行速度太慢。这里重要的事情是节点连接正确。
我已经解决了这个问题,将节点存储在HashTable中,然后遍历整个集合以将节点连接到彼此。
建议赞赏如何使这个更聪明。
两个节点何时连接?我不明白你的解释。请给出更多的例子并更彻底地解释。 – average 2013-03-27 07:42:09
我怀疑“101”和“000”没有连接,因为它需要2次更改“101”才能达到“000”。我对吗 ? – average 2013-03-27 07:44:28
嗯,是的,只需要在顶点编号的末尾添加一个数字0或1并删除第一个数字。因此,111有一个egde 1本身。此外,111还通过0连接到110.更多示例中,101通过值为1的边连接到011.它也通过0连接到010.希望这些示例更好地解释问题。 – Euklides 2013-03-27 08:47:36