Search code examples
javajgrapht

jgrapht KruskalMinimumSpanningTree retrieving the edge weights


I have a graph and I need to get the minimum spanning tree so I used KruskalMinimumSpanningTree class, now I need to retrieve each edge weight so according to the API of DefaultWeightedEdge there's a method getWeight() which retrieves the weight of an edge, However after implementing the following code the method getWeight() doesn't exist!

     KruskalMinimumSpanningTree<Pixel, DefaultWeightedEdge> k= new KruskalMinimumSpanningTree(gg);
         Set<DefaultWeightedEdge> itr = k.getSpanningTree().getEdges();
         for(DefaultWeightedEdge edge: itr)
             System.out.println(edge.getWeight());

why is this happening ?


Solution

  • OK. i found a solution for my question, apparently these methods are protected. one way of doing it is:

       KruskalMinimumSpanningTree<Pixel, DefaultWeightedEdge> k= new 
        KruskalMinimumSpanningTree(gg);
             Set<DefaultWeightedEdge> itr = k.getSpanningTree().getEdges();
             for(DefaultWeightedEdge edge: itr)
                 System.out.println(gg.getEdgeWeight(edge));