public Graphe<E> kurskal() throws Exercice2Exception, Exercice1Exception {
        Graphe<E> result = new Graphe(vertex, getNullTab(vertex.length));
        UnionFind<E> uf = new UnionFind();
        for (E v : vertex) {
            uf.makeset(v);
        }
        List<Edge> edgesTriees = getEdgesTriees();
        Edge edgeTemp;
        E u;
        E v;
        // je ne sais si foreach respecte le i de 0 à size, donc je préfère faire une boucle for
        for (int i = 0; i < edgesTriees.size(); i++) {
            edgeTemp = edgesTriees.get(i);
            u = vertex[edgeTemp.positionV1];
            v = vertex[edgeTemp.positionV2];
            if (uf.find(u, UnionFind.COMPRESSION) != uf.find(v, UnionFind.COMPRESSION)) {
                result.edges[edgeTemp.positionV1][edgeTemp.positionV2] = edgeTemp.poid;
                uf.union(u, v);
            }
        }
        return result;
    }