0
我已經實現了一個8益智遊戲的dfs搜索,但由於某種原因,我不能設法讓它工作,因爲它應該,我的堆棧不斷添加和添加我的8益智遊戲可能的動作,但它永遠不會減少的答案,我不知道這是否正常,但這是我的代碼,以防有人可以幫助我。我的dfs實現有什麼問題?
代碼沒有完全優化我知道,我只是想知道爲什麼它不工作,因爲應該是一個dfs,謝謝。
function depthFirstSearch(currentState, finalState)
{
var stack = [];
var visited = [];
delete currentState["prev"];
stack.push(currentState);
while(stack.length)
{
var node = stack.pop();
visited.push(node);
if(compare(node, finalState))
{
return visited;
}
else
{
var successors = getSuccessors(node);
for(var i = 0; i < successors.length; i++)
{
delete successors[i]["prev"];
}
var realSuccessors = [];
for(var i = 0; i < visited.length; i++)
{
for(var j = 0; j < successors.length; j++)
{
if(compare(successors[j], visited[i]))
{
continue;
}
else
{
realSuccessors.push(successors[j]);
}
}
}
for(var i = 0; i < realSuccessors.length; i++)
{
stack.push(realSuccessors[i]);
}
console.log(stack.length);
}
}
}