private String getConnectedComponent(List<Vertice> vertices, Vertice initial) {
    String result = "";
    List<Vertice> listToDelete = new ArrayList<>();

    int finalTime = initial.getFinalTime();
    for (Vertice v : vertices) {
      if (v.getFinalTime() <= finalTime) {
        result += v.getRotulo() + ",";
        listToDelete.add(v);
      }
    }

    vertices.removeAll(listToDelete);
    return result;
  }
  public List<String> getConnectedComponents() {
    List<String> connectedComponents = new ArrayList<>();
    List<Vertice> vertices = grafo.getVertices();

    int currentTime = 1;
    Vertice initial = getVerticeByInitialTime(vertices, currentTime);
    while (initial != null) {
      connectedComponents.add(getConnectedComponent(vertices, initial));
      initial = getVerticeByInitialTime(vertices, (initial.getFinalTime() + 1));
    }

    return connectedComponents;
  }
  public void printRoutingVector() {
    List<Vertice> vertices = grafo.getVertices();
    String rotulos = "";
    String fathers = "";
    String time = "";
    String temp = "";

    for (Vertice v : vertices) {
      if (v.getFather() != null) {
        temp = v.getFather().getRotulo();
      } else {
        temp = " ";
      }
      rotulos += v.getRotulo() + "   | ";
      fathers += temp + "   | ";
      time += String.valueOf(v.getInitialTime()) + "/" + String.valueOf(v.getFinalTime()) + " | ";
    }

    System.out.println(rotulos);
    System.out.println(fathers);
    System.out.println(time);
  }