Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

satchii

Problema para consultar dados na Pilha

Recommended Posts

Olá pessoal,vim aqui pedir ajuda para resolver um probleminha.

 

Eu estou aprendendo a mexer com pilhas,e preciso saber se um determinado valor foi empilhado,porém não estou conseguindo fazer isso.Tenho certeza que ele foi empilhado,pois na depuração eu vejo que ele esta la no vetor,eu fiz um laço para percorrer toda a pilha,se em algum momento ele achar o valor la uma variável booleana iniciada como false passa a ser true,e no final do laço fiz uma condicional que se a variável for true enviar uma mensagem que o valor foi encontrado na pilha,se não dizer que o valor não foi encontrado,o problema é que essa variável sempre retorna true.

 

Por motivos de simplicidade,to testando com apenas um valor na pilha,no caso é testado com o elemento 0 do vetor,eu empilho o numero 5 na primeira posição da pilha,depois na consulta digito 8,e ele retorna true.

 

Alguem pode me dar uma ajuda?

 

 

 if (! pilha.vazia()){ // testa se a pilha esta vazia antes de consultar
                     num = Integer.parseInt(JOptionPane.showInputDialog("Digite um numero"));//pede o numero a ser buscado
                     for (int j = pilha.topo;j>=0;j--){//laço para percorrer toda a pilha,começando do topo até o primeiro elemento
                         if (num == pilha.vetor[j]){//vetor é o nome do vetor onde os dados são empilhados
                             ok = true;//se o numero digitado na consulta for encontrado na pilha,deve retornar true,o problema é que sempre retorna true
                             break;
                         }
                         else
                             ok=false;//se o numero não estiver na pilha retornar false
                     }
                     if (ok = true){
                         System.out.println("Numero encontrado");//Deveria enviar essa mensagem apenas quando o numero fosse encontrado
                     }

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.