2015-11-17 2 views
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); 
+0

Почему вниз голосовать? –

+0

Вероятно, потому что существует множество реализаций стеков, из которых вы можете видеть правильное поведение. Возможно, вы используете приложение на основе JVM, которое имеет именно такую ​​[реализацию] (http://docs.oracle.com/javase/7/docs/api/java/util/Stack.html) – paulpdaniels

ответ

1

Если C регулярный стек (и это правильно закодирован), то это LIFO (последний в, первый из) контейнер.

Это означает, что все выйдет в обратном порядке, к которому вы положили их.

Так первый remove дал бы вам Moe, а второй дал бы вам Harry.

В полной детализацией:

operation  stack (top,...,bottom) str 
---------  ---------------------- --- 
initial state <empty> 
push tom  tom 
push dick  dick, tom 
push harry  harry, dick, tom 
push moe  moe, harry, dick, tom 
pop str   harry, dick, tom   moe 
pop str   dick, tom    harry 
Смежные вопросы