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

Ordena uma pilha usando algumas variáveis e um vetor.


Coloque os elementos de uma pilha P em ordem ascendente usando uma pilha adicional e algumas variáveis.


Código Java

//Autor: Thiago Campos
//Data: 27.10.2012

package br.thiago.dominio;

import javax.swing.JOptionPane;

/**
 *
 * @author Thiago
 */
public class Q2 {
    //VARIAVEIS GLOBAIS
    public static int k = 5;
    public static int[] p1 = new int[k];
    public static int[] p2 = new int[k];
    public static int topo = -1;
    public static int topoB = -1;
   
    //INICIO DAS FUNÇÕES-------------------------------------------------------
    public static void push(int valor){ //função para inserir na pilha A
        if(topo < k){
            topo++;
            p1[topo] = valor;
        }
    }//fim função push A
   
    public static void pushB(int vlr){ //função para inserir na pilha B
        if(topoB < k){
            topoB++;
            p2[topoB] = vlr;
        }
    }//fim função push B
   
    public static String exibePilha(){ //função para exibir a pilha A
        String str="";
       
        for (int i = topo; i > -1; i--) {
            str += p1[i];
        }
        return str;
    }
   
    public static String ordStr(String str){ //função para ordenar
        int aux;
        String strR="";
        int[] v = new int[5];
       

        for (int i = topo; i > -1; i--) { //transfere os elementos da pilha para o vetor
            v[i] += p1[i];
        }
       
        for (int i = 0; i < v.length; i++) { //ordena os elementos
            for (int j = i+1; j < v.length; j++) {
                if(v[i]>v[j]){
                    aux = v[i];
                    v[i] = v[j];
                    v[j] = aux;
                } //fim if 
            } //fim for j
        } //fim for i

        for (int i = 0; i < v.length; i++) {//transfere os elementos para uma string
            int a = v[i];
            pushB(a);
        }
        for (int i = 0; i < v.length; i++) {//transfere os elementos para uma string
            strR += p2[i];
        }
        return strR; //retorna a string ordenada
    }
   
    //INICIO DO MAIN------------------------------------------------------------
    public static void main(String[] args){
        //Variaveis locais
        String str;
        String strOrd;
       
        //pilha A
        push(3);
        push(4);
        push(1);
        push(5);
        push(2);
       
        //uso das funções
        str = exibePilha(); //retorna a pilha A    
        strOrd = ordStr(str); //retorna a pilha B

        //saida
        JOptionPane.showMessageDialog(null, "Pilha A: " + str);
        JOptionPane.showMessageDialog(null, "Pilha B: " + strOrd);
       
    } //fim do main
} //fim da classe

Nenhum comentário:

Postar um comentário