Если 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