Tenho a seguinte dúvida. Preciso criar uma calculadora usando pilhas, calculadora essa que deve empilhar operandos até localizar um operador para então remover os dois primeiros elementos adicionados e realizar a operação.
Set<Integer> operandos = new HashSet<>();
Set<Character> operadores = new HashSet<>();
LinkedList<Character> pilha = new LinkedList<>();
Scanner teclado = new Scanner(System.in);
for (int i = 0; i < 10; i++) {
operandos.add(i);
}
operadores.add('*');
operadores.add('+');
operadores.add('-');
operadores.add('/');
while (true) {
System.out.println("Informe o próximo caractere:");
Character caracter = teclado.next().charAt(0);
if (operandos.contains(caracter))
pilha.push(caracter);
else if (operadores.contains(caracter)) {
int A = pilha.peek();
pilha.pop();
int B = pilha.peek();
pilha.pop();
if(operadores.equals()) {
int C = A/B;
}
}
Meu problema está em comparar o operador com o que é digitado, para saber qual operação executar. O que devo fazer?
PS: Deixei em anexo o pdf com o que o professor, caso isso seja contra alguma regra por favor avisem.
trabalho-pilha-set-map-2017.pdf