class Main {
public static void main(String[] args) {
Stack pilha = new Stack();
pilha.push(4);
pilha.push(7);
pilha.push(pilha.pop());
pilha.pop();
pilha.push(8);
pilha.push(pilha.pop());
pilha.peek ();
System.out.println(pilha.peek());
}
}
Alguém pode me explicar o que esse código faz e qual resultado ?
push
significa “empilhar”, ou seja, colocar algo no topo da pilha.
pop
significa “desempilhar”, ou seja, remover o que está no topo da pilha.
peek
significa “olhar” o que está no topo da pilha, mas sem remover, deixando lá.
É só fazer no papel o exemplo que vai entender o que está acontecendo.
- empilha o valor 4
- empilha o valor 7
- empilha o valor removido do topo da pilha
- remove o valor do topo da pilha
- empilha o valor 8
- empilha o valor removido do topo da pilha
- olha o que tem no topo da pilha
- escreve o valor que tem no topo da pilha
Essa classe é java.util.Stack
? Se for, sugiro que leia a documentação e veja o que cada método faz.
Aliás, vc tentou rodar o código? Qual foi o resultado?
Dito isso, pop
remove o valor do topo da pilha, e push
adiciona. Por isso pilha.push(pilha.pop());
não faz muito sentido: vc remove e logo em seguida adiciona de novo…
Sim não faz sentido, e uma questão de concurso.
resposta dela e 8
so n entendo esse empilha o valor removido do topo da pilha na segunda linha, sendo que não foi removido nada até a linha, mas e questão de concurso isso, não faz sentido.
pilha.push(7);
pilha.push(pilha.pop());
Fez push do 7
Depois chamou novamente o push, passando como parâmetro a chama ao pop
Primeiro o pop vai remover e retornar o valor 7
Aí o 7 é passado para o push empilhar novamente