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)

sábado, 27 de outubro de 2012

Fila(pilha) com funções push(), pop(), isEmpty() e isFull()

Defina uma pilha usando, para armazenamento interno, uma fila. Descreva como seriam implementadas as operações push, pop, isEmpty(para verificar se está vazia) e isFull(para verificar se está cheia).

Código em Java

//Autor: Thiago Campos
//Data: 25.10.2012

/**
 *
 * @author Thiago
 */
package br.thiago.dominio;

import javax.swing.JOptionPane;

public class Q3 {
    //variaveeis globais
    public static int k = 5;
    public static int topo = -1;
    public static Integer[] p1 = new Integer[k];
 
    public static void push(int valor){ //insere elementos na pilha
        if(topo < p1.length-1){ //(-1) é p/ ajustar a contagem pois inicia em -1
            topo++;
            p1[topo] = valor;
        }
        else
            JOptionPane.showMessageDialog(null, "A pilha está cheia");
    exibePilha(); //mostra a pilha após add de elemento
    } //fim da função
    public static void pop(){
        if(topo >= 0){
            p1[topo] = null;
            topo--;
        }
        exibePilha(); //exibe os elementos da pilha após exclusão de elemento
    } //fim da função
     public static void exibePilha(){ //exibe os elementos da pilha
         String str = "";
         for (int i = 0; i < p1.length; i++) {
             if(p1[i] != null)
             str += p1[i];
         }
         JOptionPane.showMessageDialog(null, "Pilha: " + str);
     } //fim do função
         public static boolean isEmpty(){ //verifica se a pilha está vazia
         if(topo != -1)
             return false;
         else
             return true;
     } //fim da função
     public static boolean isFull(){ //verifica se a pilha está cheia
         if(topo == p1.length - 1)
             return true;
         else
             return false;
     } //fim da função
     
/*
 * INICIO DO MAIN ================================================================
 */    
    public static void main(String args[]) {
        //variaveis
        int p;
        int m;
     
        do {
            m = Integer.parseInt(JOptionPane.showInputDialog("Informe a opção desejada:"
                    + "\n1 - Insira um elemento na pilha"
                    + "\n2 - remova um elemento da pilha"
                    + "\n3 - Exiba os elementos da pilha"
                    + "\n4 - Sair"));

            switch (m) {
                case 1:
                    //inserir elementos na pilha
                    if (!isFull()) {
                        p = Integer.parseInt(JOptionPane.showInputDialog("Informe um inteiro para a pilha:"));
                        push(p);
                    } else
                        JOptionPane.showMessageDialog(null, "A pilha está cheia!");
                    break;
                case 2:
                    if (!isEmpty()) {
                        pop();
                    } else
                        JOptionPane.showMessageDialog(null, "A pilha está vazia!");
                    break;
                case 3:
                    exibePilha();
                    break;
                case 4:
                    JOptionPane.showMessageDialog(null, "Fechando o programa...");
                    break;
                default:
                    JOptionPane.showMessageDialog(null, "Opção inválida!");
                    break;
            } //fim do switch
        } while (m != 4);
    } //fim do main
} //fim da classe

3 comentários:

  1. Respostas
    1. Valeu! Dê uma olhada também na minha última postagem sobre lista... principalmente nos métodos, cairão na prova.

      Excluir
  2. Oi Tiago, estou estudando programação, mais amigo to apanhando,,,,

    ResponderExcluir