Jtree中两个节点之间最短路径的大小

时间:2016-06-30 14:17:08

标签: java jtree

我有一个使用Java创建的Jtree。现在我想找到Jtree中两个节点之间最短路径的大小。

示例:

enter image description here

b to c ----size of the shortest path=2
d to f-----size of the shortest path=2
d to g-----size of the shortest path=3

我使用了以下代码。我使用了SharedAncestor

public int nodeDistance(String s1, String s2) {

            JavaTreeFinal obt1 = new JavaTreeFinal();
            DefaultMutableTreeNode term1 = obt1.nodeReg.get((String) s1);
            DefaultMutableTreeNode term2 = obt1.nodeReg.get((String) s2);

            TreeNode sharedAncestor = term1.getSharedAncestor(term2);
            int levelAns = ((DefaultMutableTreeNode) sharedAncestor).getLevel();
            int levelTerm1 = term1.getLevel();
            int levelTerm2 = term2.getLevel();
            int level1 = levelTerm1-levelAns;
            int level2 = levelTerm1-levelAns;
            int shortPath = level1+level2;

            return shortPath;           
        }

使用SharedAncestor可以正确使用吗? 因为如果有更多的SharedAncestors它会给出错误吗? 此代码仅提供一个SharedAncestors。它离SharedAncestors最近吗? 或者任何其他简单而正确的方法来找到它?

如何使用Java找到它?

0 个答案:

没有答案