2016-03-16 21 views
0

我想在网络中找到最长的路由或路径“由相互连接的节点组成的图”我有一个说明点作为给定,并且我有条件跳过一个节点。因此,我留下了多条路线,然后决定其中有最多节点的路线,如果相同的节点,那么任一路线都可以。我似乎无法做到正确,每次都有不同的结果。我用递归,但没有帮助,我最终失去了所有其他路线,并保持一条路线。在馈线网络中找到最长的路径

下图显示的就是我要找

enter image description here

的出发点是红方是节点0 -forgot数点它 - 一个简单的例子,它有它包含一个属性在我的情况1,2和3中连接节点的列表中,节点1有一个连接到它,它是0,节点2有2个连接,依此类推。

我正在寻找的路线是其链接上数字最大的路线,所以在图片中,我对3条路线(路线[0,1]和路线[0,2,5,9,10])感兴趣, ,然后路由[0,2,5,9,12,13] 然后我可以选择路由3,因为它具有最多元素 条件基本上是每个节点中具有蓝色数字的属性。就这样我不会混淆你,例如节点13有99个链接。节点12有99条链路,节点14有50条链路,节点3有50条链路,所以蓝色链路上的数字表示跟随它的节点中的一个属性。 对象都准备好了,我只是很难找到所有3条路线。 任何帮助和建议将不胜感激。

+0

在您的示例中,图形是一棵树。情况总是如此吗? – amit

+0

是的,它将始终有一个根,并有节点出来 – ZZZ

回答

0

我得到这个想通了, 基本上创建一个类似的数据结构的树开始以root 然后从根,通过在具有多个塔99我的情况节点符合条件的孩子“节点” recursivly补树连接/链接。 并为每个孩子将其发送到同一个递归方法,直到树充满

现在Recursevly找到叶节点“他们没有孩子”

现在,通过使每个节点的父遍历那些叶子,如果它的空然后JACKPOT,所以我继续迭代,直到父母为空“向后遍历树”,从而获得从叶到根的路由。通过这样做我每次都会得到一个列表,存储节点数量最多的节点

相关问题