public void disconnect(Vertex a, Vertex b){
        if(isConnected(a,b)){
            int edgeWeight = this.weight.get(new Edge(a,b));
            if(edgeWeight!=1){
                this.withWeight--;
            }
            if(edgeWeight<0){
                this.withNegativeWeight--;
            }
            this.weight.remove(new Edge(a,b));
            LinkedList<Vertex> adjacencyVertices = a.getAdjencyVertices();
            Iterator<Vertex> i = new Iterator<Vertex>(adjacencyVertices);
            while(i.hasNext()){
                Vertex v = i.getNext();
                if(v.equals(b)){
                    i.remove();
                }
            }
        }
    }