All pastes #977306 Raw Edit

Miscellany

public java v1 · immutable
·published 2008-04-08 19:18 UTC
rendered paste body
	/**	 * Calculates the number of components and the size of the largest component	 * in a UndirectedGraph	 * 	 * @param g The graph to calculate	 */	private void calculateComponentsDFS(UndirectedGraph g)	{		int size = g.numVertices();		boolean[] visited = new boolean[size];		int components = 0;		int largest_component = 0;		CalcAction component = new CalcAction();		// Kör vår action på varje nod som inte är besökt än		for (int v = 0; v < size; v++)		{			if (!visited[v])			{				depthFirstSearch(g, v, visited, component);				components++;				if (component.getSize() > largest_component)					largest_component = component.getSize();				component.reset();			}		}		System.out.println("Components: " + components				+ "\tLargest component: " + largest_component);	}	private static class CalcAction implements VertexAction	{		private int size = 0;		public void act(UndirectedGraph g, int v)		{			size++;		}		public int getSize()		{			return size;		}		public void reset()		{			size = 0;		}	}