Código para a questão
1 class LinkEntry {
2 private Object element;
3 private LinkEntry link;
4 publica LinkEntry (Object element, LinkEntry link) {
5 this.element = element; this.link = link;
6 }
7 public Object getElement () { return element; }
8 public LinkEntry getLink () { return link; }
9 public void setlink (LinkEntry newLink) { link = newLink; }
10 }
11 class Stack {
12 private LinkEntry top;
13 public Stack () { top = null; }
14 public void push (Object element) {
15 LinkEntry entry = new LinkEntry (element, top);
16 top = entry;
17 }
18 public Object pop () {
19 LinkEntry entry = top;
20 top = top.getLink ();
21 return entry.getElement ();
22 }
23 public Object peek () { return top.getElement (); }
24 public boolean empty () { return top == null; }
25 public boolean full () {
26 LinkEntry entry = new LinkEntry (null, null);
27 return entry == null;
28 }
29 }
30 public class StackTest {
31 public static void main (String args []) {
32 Stack list = new Stack ();
33 list.push ("Joao"); list.push ("Maria"); list.push ("José");
34 while ( ! list,empty ()) {
35 System.out,println ((String) list.pop ());
36 }
37 }
38 }
Considerando a unidade de compilação Java apresentada, adaptada de Barnes e Kölling, julgue os itens a seguir acerca das ações que ocorrerão durante a execução do método main da classe StackTest.
I Serão criadas três instâncias da classe LinkEntry, uma instância da classe Stack e uma instância da classe StackTest.
II A variável top da instância de Stack apontada pela variável list do método main da classe StackTest conterá o valor null, imediatamente antes do final da execução do referido método main.
III Os métodos full e peek não serão executados.
IV Os nomes “Joao”, “Maria” e “José” serão impressos no console, nessa ordem.
V Para cada instância de LinkEntry criada, existe uma instância correspondente da classe String.
Estão certos apenas os itens