AGRADECIMENTO...

Pessoal, Gostaria de pedir desculpas aqueles que deixam perguntas/comentários/elogios/críticas e ainda não foram respondidos.

Aproveito a oportunidade para informar a todos que devido a correria do dia a dia não conclui o curso de BSI, por isso meus conhecimentos são limitados rsrsrs...

Ainda não retirei o blog do ar porque tem ajudado a diversos estudantes, principalmente os iniciantes.

As vezes, quando o trabalho me permite, ainda arrisco tentar resolver algumas questões rs... mas para não deixar esse blog parar no tempo, o ESTUDANTE que quiser enviar a resolução de alguma questão (código próprio) para o meu e-mail, terei o prazer de posta-la neste blog e será mantido a autoria.

Desde já agradeço a todos pelas visitas e desejo bons estudos.

Thiago Campos
(srthiago@hotmail.com)

sexta-feira, 28 de setembro de 2012

Questão 3 Pilha

Programe uma pilha com as operações push(int valor) e pop(). Após a criação da classe Pilha, instancie uma pilha com cinco posições preencha a mesma com dados informados pelo usuário. Em seguida remova dois elementos da mesma e apresente os dados na pilha para o usuário.

Observação: a pilha não pode conter elementos repetidos.

Código Java

//Autor; Thiago Campos
//Data: 25.09.2012
package thiago.prova.questoes;

import javax.swing.JOptionPane;
import thiago.prova.questoes.classe.Q3Pilha;

/**
 *
 * @author Thiago
 */
public class Questao3 {

    public static void main(String[] args) {
        //variaveis
        int n;
        int v; //recebe o retorno do metodo verificaConteudo
        int k = 5; //qtd de vezes do laço

        //criação da pilha
        Q3Pilha pilha = new Q3Pilha();

        for (int j = 0; j < k; j++) {

            n = Integer.parseInt(JOptionPane.showInputDialog("Informe a pilha: "));
            v = pilha.verificaConteudo(n);

            //caso a pilha ja tenha o elemento
            if (v == 1) {
                JOptionPane.showMessageDialog(null, "Elemento ja está contido na pilha.");
                k += 1; //incrementa o tamanho do laço pq o elemento está repetido
                continue; //volta para o inicio do for
            } else {
                pilha.push(n); //chama o metodo push
            }

        }//fim do for

        //exibindo a pilha
        pilha.exibirPilha();

        //retirando 2 elementos da pilha
        pilha.pop();
        pilha.pop();
        pilha.exibirPilha();

    } //fim do main
} //fim da classe
/*---------------------------------------------------------------------------------------------------------
* INICIO DA CLASSE Q3_PILHA
---------------------------------------------------------------------------------------------------------*/


package thiago.prova.questoes.classe;

import javax.swing.JOptionPane;

/**
 *
 * @author Thiago
 */
public class Q3Pilha {
    //variaveis
    private int topo = -1;
    private Integer[] v = new Integer[5];

    //metodo push
    public void push(int valor) {
        if (topo < v.length) {
            topo++;
            v[topo] = valor;
           
        } else {
            JOptionPane.showMessageDialog(null, " A pilha está cheia.");
        }
    }

    //metodo pop
    public void pop() {
        if (topo >= 0) {
            v[topo] = null;
            topo--;
        } else {
            JOptionPane.showMessageDialog(null, "Pilha Vazia.");
        }
    }

    //exibir pilha
    public void exibirPilha() {
        String pilha = "";
        for (int i = 0; i < v.length; i++) {
            pilha += v[i] + " ";
        }
        JOptionPane.showMessageDialog(null, "Elementos da pilha:\n" + pilha);
    } //fim do metodo exibirPilha
   
   //metodo verifica se ha elemento igual na pilha
    public int verificaConteudo(int n) {
        for (int i = 0; i <= topo; i++) {
            if (topo >= 0 && v[i] == n) {return 1;}
        } //fim do for
        return 0;
    } //fim do metodo
} //fim da classe

Nenhum comentário:

Postar um comentário