0

为什么以下陈述是等价的?emptyRow 和 emptyCol 是整数堆栈,而 Grid 是一个二维整数数组。你不需要知道程序做什么,但如果你想知道它是一个使用基本回溯的数独解谜算法。

这两个语句都允许程序在没有任何错误的情况下运行,但我不明白这是怎么可能的,因为 .pop() 在第一个实现中返回最顶层的整数,而第二个语句首先弹出最顶层的项目并检索整数直接在那些之下。

声明 A:

Grid[emptyRow.pop()][emptyCol.pop()] = 0;

声明 B:

emptyRow.pop();
emptyCol.pop();
Grid[emptyRow.peek()][emptyCol.peek()] = 0;

抱歉,如果这是我的代码的一个愚蠢的逻辑问题,我只是在检查是否有一些我不知道堆栈操作如何工作的东西。

4

1 回答 1

1

声明 A 与

Grid[emptyRow.peek()][emptyCol.peek()] = 0;
emptyRow.pop();
emptyCol.pop();

我认为您的顺序很混乱,也许在您的用例中没关系,但代码不一样。

于 2013-11-14T16:57:45.550 回答