@Override
	public String toString(){
		StringBuilder sb = new StringBuilder("");
		sb.append("\n------- Adjacency-List  --------\n\n");
		for(int i= 0 ; i< V(); i++){
			Iterator<Integer> iterator = adjIterator(i);
			sb.append(String.format("%-2s", i) + " | ");
			while (iterator.hasNext()) {
				int next = iterator.next();
				sb.append(String.format("%-2s", next) + " ");
			}
			sb.append("\n");
		}
		sb.append("\n");
		sb.append("\n------- Transtive Matrix --------\n\n");
		//print output looks like "   | 0  1  2  3  4 .... "
		sb.append(String.format("%-2s", " ") + " | ");
		for(int i= 0 ; i< V(); i++){
			sb.append(String.format("%-2s", i) + " ");
		}
		sb.append("\n");
		//print output looks like "-- | -- -- -- -- -- -- ..... "
		sb.append(String.format("%-2s", "--") + " | ");
		for(int i= 0 ; i< V(); i++){
			sb.append(String.format("%-2s", "--") + " ");
		}
		sb.append("\n");
		//print output looks like "0  | -  C  C        C  C........."; c for connected
		for(int i= 0 ; i< V(); i++){
			sb.append(String.format("%-2s", i) + " | ");
			for(int j=0; j < V(); j++){
				if(i == j){
					sb.append(String.format("%-2s", "-") + " ");
				}else if(adjList[i].contains(j)){
					sb.append(String.format("%-2s", "C") + " ");
				}else{
					sb.append(String.format("%-2s", " ") + " ");
				}
			}
			sb.append("\n");
		}
		return sb.toString();
	}