/// <summary> /// Замена по L-цепочке /// </summary> /// <param name="chain"></param> public void replaceInChain(LChain chain) { for (int k = 0; k < chain.N; k++) { int i = -1, j = -1; chain.get(k, out i, out j); if (_c[i][j]._mark == '*') { _c[i][j]._mark = ' '; K--; } else { _c[i][j]._mark = '*'; K++; } } }
private LChain buildLChain(VengerMatrix c, int i, int j) { LChain chain = new LChain(c.N * c.N); chain.add(i, j); while ((i = c.hasMarkedElementInColumn(j, '*')) != -1) { chain.add(i, j); j = c.hasMarkedElementInRow(i, '\''); chain.add(i, j); } return chain; }