【问题标题】:What is wrong with my recursive back-tracker我的递归回溯器有什么问题
【发布时间】:2021-09-07 11:26:54
【问题描述】:

.......................

【问题讨论】:

  • 空行不会抛出错误。您运行的文件是否正确,是否有任何重复的类/项目?请使用正确的第 133 行或正确​​的错误更新您的问题。现在进入问题。您需要在代码中添加一些调试以找出问题所在。找到问题的简单方法是向你的上帝添加一堆打印语句,例如像这样的“System.out.pruntln(”代码到达点???,堆栈大小为“+ stack.size( )+",vis的值为"+vis);"
  • 或者你可以使用调试器。几乎所有 IDE 都包含调试器。初级课程很少涵盖它们,但它们应该。在第 2 或第 3 课。
  • 为什么 toVisvis 很重要。只需从堆栈中弹出,直到它为空。如果没有正确跟踪 toVisvis 计数,这将是一个少问题。 while (!stack.isEmpty()) { item = stack.pop(); // process item & push backtrack & push other paths }

标签: java algorithm oop switch-statement maze


【解决方案1】:

编辑:问题已解决。不得不换行:

 int x = stack.firstElement().getKey();   
 int y = stack.firstElement().getValue();

进入:

 int x = stack.peek().getKey();   
 int y = stack.peek().getValue();

结果方法 .firstElement() 并没有给你第一个元素(堆栈顶部的那个),而是第一次插入的那个(总是同一个对象)所以最后所有的操作都是在一个上执行的, 单个元素而不是多个元素。

【讨论】:

  • 我认为最好接受您自己的答案,以帮助解决您的问题,这样经验丰富的 Stack 用户就不会在寻找没有可接受答案的问题时出现该问题。
  • 是的,我刚刚做到了
猜你喜欢
  • 1970-01-01
  • 2011-08-09
  • 2021-02-25
  • 1970-01-01
  • 2013-01-29
  • 2020-06-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多