public void DJP(String startU, LinkedList[] cities/*adjency list*/){
        boolean isNewV = false; 
        List<String> V = new ArrayList<>(); //list of added vertices
         List<Edge> A = new ArrayList<>(); //MST of edges
        
        //start at arbitrary v(Grand Forks) and add all edges to Queue (Grand Forks, u)
        do {
            isNewV = false;
            V.add(startU);
            cityCount++;
            int i = SexyCities.search(startU);
            
            for (int j =0; j< cities[i].size(); j++) {
                
                loosies.offer( (Edge) cities[i].get(j)); //adds edges to Priority Q
            
            }
                while (!isNewV){
                    //System.out.println("while not isNewV" );
                    //pop edge with smallest weight
                    Edge temp = loosies.poll();
                    // error checking
                    if(temp== null){break;}
                      
                    //check if v is in queue
                    if (!checkMst(temp, V) ){
                        startU = temp.getV();
                        
                        A.add(temp);
                        edgeCount++;
                        totalWeight += temp.getWeight();
                        isNewV = true;
                    }
                    //else System.out.println("\n did not add "+startU);
                } 
            
        } while ( !loosies.isEmpty() );
        printMST(A, cityCount );
        
        
    }