Link to code: PercolationDFS.java
import java.util.Arrays;
import princeton.*;
/**
* Simulate percolation thresholds for a grid-base system using depth-first-search,
* aka 'flood-fill' techniques for determining if the top of a grid is connected
* to the bottom of a grid.
* <P>
* Modified from the COS 226 Princeton code for use at Duke. The modifications
* consist of supporting the <code>IPercolate</code> interface, renaming methods
* and fields to be more consistent with Java/Duke standards and rewriting code
* to reflect the DFS/flood-fill techniques used in discussion at Duke.
* <P>
* @author Kevin Wayne, wayne@cs.princeton.edu
* @author Owen Astrachan, ola@cs.duke.edu
* @author Jeff Forbes, forbes@cs.duke.edu
*/
public class PercolationDFS implements IPercolate {
// possible instance variable for storing grid state
public int[][] myGrid;
/**
* Initialize a grid so that all cells are blocked.
*
* @param n
* is the size of the simulated (square) grid
*/
public PercolationDFS(int n) {
// TODO complete constructor and add necessary instance variables
}
public void open(int i, int j) {
// TODO complete open
}
public boolean isOpen(int i, int j) {
// TODO complete isOpen
return false;
}
public boolean isFull(int i, int j) {
// TODO complete isFull
return false;
}
public boolean percolates() {
// TODO: run DFS to find all full sites
return false;
}
/**
* Private helper method to mark all cells that are open and reachable from
* (row,col).
*
* @param row
* is the row coordinate of the cell being checked/marked
* @param col
* is the col coordinate of the cell being checked/marked
*/
private void dfs(int row, int col) {
// TODO: complete dfs
}
}