如何在深度优先搜索 C++ 中备份到较早的值?

How can I back up to an earlier value in Depth-First Search c++?

在这里,我正在用 C++ 实现深度优先搜索 (DFS)。但是,我似乎无法找到一种方法来备份到以前的位置(即 1->2->3 如果 3 是行尾返回 2)

我可以使用向量或堆栈来跟踪我的动作吗?

int searcher(int line[3], int lineNumber) {
    int value = 0;
    if (line[0] == 1) {
        if (hasRunLine[lineNumber+1] != 1) {
            value = lineNumber + 1;
        } else {
            value = -1; // here it needs to go back and check whether it is at the start
        }
    } else if (line[0] = 2) {
        if (hasRunLine[line[1]] != 1) {
            value = line[1];
        } else {
            value = -1; // here too
        }
    } else {
        if (hasRunLine[line[1]] != 1) {
            value = line[1];
        } else if (hasRunLine[line[2]] != 1) {
            value = line[2];
        } else {
            value = -1; // here too
        }
    }
    if (value <= maximum && value >= 2) {
        return value;
    } else {
        return -1; // here too
    }
}

使用 vector 并在每次切换到不同位置时添加新动作。