为什么以下陈述相同? emptyRow和emptyCol是Integer堆栈,Grid是一个二维整数数组。你不需要知道程序的功能,但是如果你想知道它是一个使用基本反向跟踪的数独解谜算法。
这两个语句都允许程序运行没有任何错误,但我不明白这是怎么回事,因为.pop()返回第一个实现中最顶层的整数,而第二个语句首先弹出最顶层的项目直接检索那些整数。
陈述A:
Grid[emptyRow.pop()][emptyCol.pop()] = 0;
陈述B:
emptyRow.pop();
emptyCol.pop();
Grid[emptyRow.peek()][emptyCol.peek()] = 0;
很抱歉,如果这是我的代码的一个愚蠢的逻辑问题,我只是检查是否有一些我不知道堆栈操作是如何工作的。
答案 0 :(得分:1)
陈述A与
相同Grid[emptyRow.peek()][emptyCol.peek()] = 0;
emptyRow.pop();
emptyCol.pop();
我认为你的订单很混乱,也许在你的用例中它并不重要但代码却不一样。