Ir para conteúdo
Fórum Script Brasil

Eurico Pelepka

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Posts postados por Eurico Pelepka

  1. Opa Alguém poderia me ajudar, já estou a um bom tempo tentando resolver mas consigo de maneira nenhuma, alguém DA UMA LUZ.

     

    Preencher os espaços em branco conforme indicado no comentário  (// ... )para o programa principal e um função para resolver o seguinte problema:

    Dada um a pilha já com 4 elementos classificados em ordem crescente à partir do TOPO, completar as instruções do programa obter os seguintes resultados:

    1.       Listar a pilha original, como ela está;

    2.       Listar os elementos de um dado vetor de 4 elementos não classificados;

    3.       Ler o vetor e empilhar os seus quatro elementos na pilha, sendo que cada elemento deve ser colocado na pilha de maneira a não alterar a ordem de classificação crescente.

    4.       Usar uma função à parte, para incluir cada elemento do vetor, com as seguintes funcionalidades:

    a.       Utilizar uma pilha auxiliar para armazenar os elementos da pilha original para manter a classificação.

    b.      Para cada elemento do vetor colocá-lo na ordem correta na pilha.

    c.       Restaurar a pilha original no final da função.

    5.       Listar a pilha atualizada.

    OBS: O resultado deve sair neste formato:

     

    Pilha Original.

    Pilha[9] = 0

    Pilha[8] = 0

    Pilha[7] = 0

    Pilha[6] = 0

    Pilha[5] = 0

    Pilha[4] = 0

    Pilha[3] = 5 <-- TOPO

    Pilha[2] = 7

    Pilha[1] = 12

    Pilha[0] = 15

     

    Vetor para empilhar.

     3  13  8  2

     

    Atualizando a Pilha ...

     

    Pilha Atualizada.

    Pilha[9] = 0

    Pilha[8] = 0

    Pilha[7] = 2 <-- TOPO

    Pilha[6] = 3

    Pilha[5] = 5

    Pilha[4] = 7

    Pilha[3] = 8

    Pilha[2] = 12

    Pilha[1] = 13

    Pilha[0] = 15

    Fim do Programa.

     

     

    Programa Principal

    #include <stdio.h>

    #define TAM 10

     

    void empilharNaOrdem(int [], int*, int);

     

    int main()  {

        int pilha[TAM] = {15, 12, 7, 5, 0, 0, 0, 0, 0, 0};

        int vetor[4] = {3, 13, 8, 2};

        int topo = __________, i = 0;        // ... valor do topo

     

        /* Listar a pilha original*/

        printf("Pilha Original.\n");

        for (i = _______; i ______; i____)  {// ...elementos do comando for para ler pilha

            printf("Pilha[_____] = _____ ", _____, _________); // ...para imprimir a pilha

            if (______________)                              // ... identificação do topo

                printf("<-- TOPO\n");

            else

                printf("\n");

        }

       

        //Listar vetor

        printf("\nVetor para empilhar.\n");

        for (i = _____; i______; i____) { // ... elementos do comando for para ler o vetor

          printf(" _________ ", _____________);      // ... imprimir o vetor

        }

       

        /* Empilhar 4 numeros em ordem crescente a partir do topo */

        printf("\n\nAtualizando a Pilha ...\n\n");

     

        for (i = ____; i _____; i____) {  // ... elementos do comando for para ler o vetor

            empilharNaOrdem(_______, _________, _________); // ...parâmetros da chamada da

                                                            // ...função

        }

     

        /* Listar a pilha atualizada*/

        printf("\nPilha Atualizada.\n");

        for (i = ________; i _______; i_____)  { // ... elementos do comando for para ler

                                                 // ... a pilha atualizada

            printf("Pilha[______] = _______ ", ______, _______); // ... para imprimir a

                                                                 // ... a pilha

            if (____________)                           // ... identificação do topo

                printf("<-- TOPO\n");

            else

                printf("\n");

        }

     

        printf("\nFim do Programa.\n");

        getchar();

        return 0;

    }


     

     

     

     

    Função para empilhar os elementos do vetor em ordem crescente.

     

    void empilharNaOrdem(int pilha[], int* topo, int n) {

        int pilhaAux[TAM] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

        int topoAux = ____________;                    // ... valor do topoAux

       

        while (*topo ________  ________)  {

            if(n <= ____________) {    // ... testar elemento do vetor com o topo da pilha

                *topo = ________________;     // ... atualizar o topo da pilha

                pilha[__________] = _________;  // ... colocar o elemento do vetor na

                                                // ...pilha original

                ___________;                // ... sair do while

                }

                else  {

                      topoAux__________;         //... atualizar o topo da pilha auxiliar

                      pilhaAux[_________] = pilha[________]; // ... colocar elemento da

                     pilha[______] = _______;           // ... pilha na pilha auxiliar

                      *topo = *topo  ________;           // ... atualizar o topo da pilha

                }

          }

         

          if (*topo ___________)  {       // ... verificar se pilha original ficou vazia

                *topo = ____________;         // ... atualizar o topo da pilha

                pilha[____________] = _______;  // ... colocar elemento do vetor na pilha

          }

         

          if (topoAux ___________)       // ... verificar se a pilha auxiliar está vazia

              return;

             

          while (topoAux _________)  {   // ... testar se há elementos na pilha auxiliar

                *topo = ________________;       // ... atualizar o topo da pilha original

                pilha[_______] = pilhaAux[___________];  // ... colocar elemento da pilha

                                                  // ... auxiliar na pilha original

                topoAux__________;             // ... atualizar o topo da pilha auxiliar

          }

        return;

    }

                                                                                                                                                                                                     

     

     

     

×
×
  • Criar Novo...