0
如果C是一個堆棧,我想知道System.out.println(str);
的輸出是什麼。這個僞代碼的輸出是什麼?
我認爲System.out.println(str);
命令會輸出Harry
,但我想確認,因爲我不完全理解.remove()
命令。當我將這個僞代碼轉換爲Java時,它不會識別.remove()
命令,除非我通過一個整數,例如.remove(2)
。所以我不確定在這種情況下,如果.remove()
是一個無效的命令,或者它是一個適當的堆棧方法。我的研究似乎表明,沒有適用於堆棧的.remove()方法。
所以我的問題是,如果C是一個堆棧,System.out.println(str);
的輸出是什麼?
public interface Container<T>
{
void insert(T x); // insert x into Container
T remove(); // remove item from Container
}
public class C<T> implements Container<T>
{
public C() { /* constructor */ }
public void insert(T x) { /* insert x into C */ }
public T remove() { /* remove item from C */ }
//.. other methods
}
Here is a program segment that uses class C above:
Container<String> words = new C<String>();
String w1 = "Tom";
String w2 = "Dick";
String w3 = "Harry";
String w4 = "Moe";
words.insert(w1);
words.insert(w2);
words.insert(w3);
words.insert(w4);
String str = words.remove(); // remove
str = words.remove(); // remove again
System.out.println(str);
爲什麼向下票呢? –
可能是因爲有大量的堆棧實現可以從中看到正確的行爲。你似乎正在使用一個基於JVM的應用程序,它只有這樣一個[實現](http://docs.oracle.com/javase/7/docs/api/java/util/Stack.html) – paulpdaniels