【问题标题】:Why are these statements equal? Stack methods in java为什么这些陈述是平等的? java中的堆栈方法
【发布时间】:2013-11-14 16:55:38
【问题描述】:

为什么以下语句是等价的? emptyRow 和 emptyCol 是整数堆栈,而 Grid 是整数的二维数组。您无需知道该程序的功能,但如果您想知道它是一个使用基本回溯的数独解谜算法。

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

声明 A:

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

声明 B:

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

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

【问题讨论】:

    标签: java stack equivalent


    【解决方案1】:

    语句A与

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-16
      • 2011-10-31
      相关资源
      最近更新 更多