public void WeightedQuickUnionTest() { //Arrange var weightedQuickUnion = new WeightedQuickUnion(10); //7-9 6-9 2-0 5-8 7-4 6-1 0-5 4-3 2-4 //Act weightedQuickUnion.Union(7, 9); weightedQuickUnion.Union(6, 9); weightedQuickUnion.Union(2, 0); weightedQuickUnion.Union(5, 8); weightedQuickUnion.Union(7, 4); weightedQuickUnion.Union(6, 1); weightedQuickUnion.Union(0, 5); weightedQuickUnion.Union(4, 3); weightedQuickUnion.Union(2, 4); //Assert Assert.IsTrue(weightedQuickUnion.IsConnected(7, 9)); Assert.IsTrue(weightedQuickUnion.IsConnected(6, 9)); Assert.IsTrue(weightedQuickUnion.IsConnected(2, 0)); Assert.IsTrue(weightedQuickUnion.IsConnected(5, 8)); Assert.IsTrue(weightedQuickUnion.IsConnected(7, 4)); Assert.IsTrue(weightedQuickUnion.IsConnected(6, 1)); Assert.IsTrue(weightedQuickUnion.IsConnected(0, 5)); Assert.IsTrue(weightedQuickUnion.IsConnected(4, 3)); Assert.IsTrue(weightedQuickUnion.IsConnected(2, 4)); foreach (var component in weightedQuickUnion.Components) { Trace.WriteLine(component); } }
public void UnionTests() { var union = new WeightedQuickUnion(10); union.Union(5, 8); Assert.IsTrue(union.Connected(5, 8)); Assert.IsFalse(union.Connected(5, 9)); }
static void Main(string[] args) { int n = 10; WeightedQuickUnion weighted = new WeightedQuickUnion(n); weighted.Union(0, 1); weighted.Union(2, 3); weighted.Union(4, 5); weighted.Union(5, 0); weighted.Union(6, 7); weighted.Union(8, 9); weighted.Union(0, 8); bool found = weighted.Connected(9, 0); }
// create N-by-N grid, with all sites blocked public Percolation(int N) { gridDimension = N; percolationGrid = new bool[gridDimension, gridDimension]; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { percolationGrid[i, j] = false; } } virtualBottom = gridDimension * gridDimension; virtualTop = virtualBottom + 1; weightedQuickUnionUF = new WeightedQuickUnion(gridDimension * gridDimension + 2); weightedQuickUnionUFForFull = new WeightedQuickUnion(gridDimension * gridDimension + 2); }
static void Main(string[] args) { WeightedQuickUnion qu = new WeightedQuickUnion(10); qu.union(4, 3); qu.union(3, 8); qu.union(6, 5); qu.union(9, 4); qu.union(2, 1); qu.union(5, 0); qu.union(7, 2); qu.union(6, 1); qu.union(7, 3); qu.Print(); }
static void Main(string[] args) { WeightedQuickUnion weightedQuickUnion = new WeightedQuickUnion(10); }