public void calculateMST() {
        visit(0);
        while (!pq.isEmpty()) {
            Edge edge = pq.popMin();
            if (used[edge.getV()] && used[edge.getW()]) {
                continue;
            }
            tree.add(edge);
            if (!used[edge.getV()]) {
                visit(edge.getV());
            } else {
                visit(edge.getW());
            }
        }

    }