private void bfs(Graph G, int s)
	{
		Queue<Integer> q = new LinkedList<Integer>();
		

		q.add(s);
		marked[s] = true;
		while (!q.isEmpty())
		{
			adjCount[s]++;
			int v = q.remove();
			for (int w : G.adj(v))
				if (!marked[w])
				{
					edgeTo[w] = v;
					marked[w] = true;
					distTo[w] = distTo[v] + 1;
					q.add(w);
				}
		}

		// calculate eccentricity of s
		for (int i = 0; i < distTo.length; i++)
			if (distTo[i] > eccentricity)
				eccentricity = distTo[i];

	}