2013-11-14 26 views
0

爲什麼以下語句是等價的? emptyRow和emptyCol是整數堆棧,Grid是整數的二維數組。你不需要知道程序的功能,但是如果你想知道這是一個使用基本回溯的數獨謎題解決算法。爲什麼這些陳述是平等的? java中的堆棧方法

這兩個語句都允許程序運行時沒有任何錯誤,但我不明白這是如何實現的,因爲.pop()返回第一個實現中最頂端的整數,而第二個首先彈出最頂端的項目並直接檢索那些整數。

語句:

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

聲明B:

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

很抱歉,如果這是我的代碼一個愚蠢的邏輯問題,我只是檢查,看看是否有什麼我不瞭解堆棧操作的工作原理。

回答

1

語句相同

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

我想你混淆了秩序,或許在您的使用情況下,它並不重要,但代碼是不一樣的。