DEV Community

drevispas
drevispas

Posted on

Programming Template: BackTraking

This is a simple code example of backtraking. This traverses the problem space in depth-first order. I memorized it as a solution template.

const int MAXC = 4;
int finished = 0;
void bt(int a[], int k, int n) {
    int candidates[MAXC], numCand, i;
    if (solved(a, k, n)) {
        answer(a, k, n);
        return;
    }
    numCand = getCandidates(a, k, n, candidates);
    for (i = 0; i < numCand; i++) {
        a[k] = candidates[i];
        bt(a, k + 1, n);
        if (finished) return;
    }
}

Top comments (0)