Pilhas em java

6 respostas
M

please, alguem pode me ajudar. estou cursando segunda fase computação e tenho um trabalho sobre pilhas que nao estou conseguindo resolver, tenho que criar um programa que avalie uma expressão (9+6) = certa ,{9+2(3-1)}=certa, (9-2 = errada,
ou seja avaliar se o numero de colchetes, partenteses e chaves estao corretos, empilhá-los e comparar isso.
se alguem puder help me ficarei grato, é urgente.

6 Respostas

P

Em qual parte você teve problemas?

M

não estou conseguindo fazer as comparações dos parenteses etc, faço antes de empilhar ou desempilho primeiro? e como faço a comparação?

P

Qual seu algoritmo?

1 - Empilhe todas as vezes que encontrar um “(”
2 - Desempilhe todas as vezes que encotnrar um “)”

Se sobrar algo na pilha ou você desempilhar a main (underflow), tem erro na expressão.

M
while(true){

try{

String expressao = JOptionPane.showInputDialog(null, “”, Dígite a expressão a ser analisada ., 1);

for (int i =1; i>=expressao.length(expressao);i++){

if (expressao[i] ==  ( ) ;//aqui oerro
Pilhas pilha = new Pilhas( expressao.length() );

o compilador nao esta identificando o parentese da expressao, ou seja ele pega o do meio que é o para fazer a comparação e fecha com o último, indiferente se ele esta entre " " ou ’ ’ .

P

“martebijogsol”:

if (expressao[i] == ‘(’ ) ;//aqui oerro

o compilador nao esta identificando o parentese da expressao, ou seja ele pega o do meio que é o para fazer a comparação e fecha com o último, indiferente se ele esta entre " " ou ’ ’ .

Na verdade não. Strings em java não são arrays de caracteres, são objetos, essa comapração é inválida.

Use o método de String que retorna um array de caracteres.

M

e qual seria esse método???

Criado 3 de abril de 2005
Ultima resposta 4 de abr. de 2005
Respostas 6
Participantes 2