나는 8 개의 왕비 문제를 풀기 위해 프로그램을 만들려고 노력하고있다.하지만, 마지막 리턴에 도달하지 못하게하고, 다른 사람에게 퍼팅을 시도했으나, 처음에 준다하더라도 결코 도달하지 못했다. 빈 스택. 이유는 무엇이든 처음으로 내가 top() 함수를 호출하면, 내가 마지막으로 추가 한 것과 다른 요소를 반환하지만, 내가 다시 호출하면 올바른 요소를 반환합니다. 그래서 문제가 어디에 있는지 알고 싶습니다.스택에 아직 요소가있는 경우 "if stack is empty"조건을 무시하는 이유는 무엇입니까?
bool search(stack<nodo>& board, int n) {
nodo queen;
queen=board.top();
queen=board.top();
if (queen.y == n)
return true;
bool valid;
if (!board.empty()) {
queen.y += 1;
for(int i; i<=n; i++) {
queen.x = i;
valid = isvalid(queen,board);
if (valid) {
board.push(queen);
search(board,n);
}
}
board.pop();
}
return false;
}
'search (board, n); 대신'return search (board, n);을 사용하셨습니까? – Angew