import java.io.*; public class GraphClose extends CGraph { PathCell[][] node = null; int size = 0; public void fillGraph(BufferedReader inp) { super.fillGraph(inp); node = new PathCell[m_Size][m_Size]; for ( int row = 0; row < m_Size; row++ ) for ( int col = 0; col < m_Size; col++ ) node[row][col] = new PathCell(); } public void initialize( boolean diagonal ) { for ( int row = 0; row < m_Size; row++ ) { for ( int col = 0; col < m_Size; col++ ) { if ( m_Road[row][col] != null ) node[row][col].initialize ( true, m_Road[row][col].length(), m_City[row].getName() ); // Set back to initial unconnected configuration else node[row][col].initialize ( false, Integer.MAX_VALUE/2, ""); } node[row][row].initialize ( diagonal, (diagonal ? 0 : Integer.MAX_VALUE/2), "" ); } } public void transitiveClosure() { // Initialize with "not-connected" down the diagonal. initialize( false ); Warshall(); } public void reflexiveTransitiveClosure() { // Initialize with "connected" down the diagonal. initialize( true ); Warshall(); } . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .