Informática, perguntado por andersonvascohps, 3 meses atrás

Tanto a fila como a pilha são conjuntos ordenados de itens, porém ambas se diferenciam pelas regras de inserção e remoção de elementos. Na pilha, a entrada e a saída de dados se dão pela mesma extremidade, chamada de topo da pilha. Na fila, a entrada e a saída ocorrem em lugares opostos: a entrada acontece no final da fila e a saída no seu início.
OLIVEIRA, Pietro Martins de; LEON, Rogério de. Estrutura de Dados I. Maringá-PR, Unicesumar, 2019.

Uma pilha não passa de uma estrutura de dados linear que segue a regra LIFO (Last In First Out). Em uma pilha, tanto a inserção quanto a exclusão ocorrem a partir de apenas uma extremidade, ou seja, a partir do topo.

Considere o seguinte cenário:
Imagine que você tem 5 pratos de cores distintas: (1) Vermelho, (2) Verde, (3) Azul, (4) Branco e (5) Laranja e precisa mantê-los um em cima do outro. Você começa colocando o prato de cor vermelha sobre a mesa. Este é o primeiro elemento da pilha. Em seguida, você coloca o verde em cima do vermelho. Este é o segundo elemento da pilha. Da mesma forma, você coloca o prato azul seguido do branco e, finalmente, o laranja.
Note que o primeiro prato que você inseriu na pilha foi o vermelho, e agora você quer ordena-los de forma inversa: 5, 4, 3, 2 e 1.
A partir dessas informações você deverá desenvolver um programa em Linguagem C que execute os seguintes passos:
1 - Preencher uma pilha com os cinco pratos citados acima;
2 - Imprimir a pilha na ordem em que os elementos foram inseridos (iniciando pela base, e finalizando pelo topo);
3 – Desempilhar todos os elementos, inserindo-os em uma segunda estrutura de dados do tipo pilha;
4 - Imprimir a nova pilha na ordem em que os elementos foram inseridos (iniciando pela base, e finalizando pelo topo).

Soluções para a tarefa

Respondido por barres338
19

Resposta:

#include <stdio.h>

#include <stdlib.h>

#define TAMANHO 100

void push(char *valor);

void push2(char *prato);

char *pop();

char vetor[TAMANHO][100];

int posicao = 0;

int main()

{

   push("vermelho");

   push("Verde");  

   push("azul");

   push("branco");

   push("laranja");

   

   printf("\n");

   system("pause");

   system("cls");

   

    printf("desempilhou o prato:laranja  %s\n", pop());

   printf("desempilhou o prato:branco %s\n", pop());

   printf("desempilhou o prato:azul %s\n", pop());

   printf("desempilhou o prato:verde %s\n", pop());

   printf("desempilhou o prato:vermelho %s\n", pop());

   

   

   printf("\n");

   system("pause");

   system("cls");

   

 push("vermelho");

    push("verde");  

    push("azul");

    push("branco");

    push("laranja");

   

   printf("\n");

   system("pause");

   system("cls");

   

   printf("desempilhou o prato:laranja  %s\n", pop());

   printf("desempilhou o prato:branco %s\n", pop());

   printf("desempilhou o prato:azul %s\n", pop());

   printf("desempilhou o prato:verde %s\n", pop());

   printf("desempilhou o prato:vermelho %s\n", pop());

   

   

    printf("\n");

   system("pause");

   system("cls");

   

   

   

   push("vermelho");

    push("verde");  

    push("azul");

    push("branco");

    push("laranja");

   

}

void push(char *valor)

{

    if(posicao == TAMANHO)

        printf("Estouro de pilha\n");

    else

    {

     

        posicao++;

        printf("empilhou prato: %s\n", valor);

    }

}

void push2(char *prato)

{

    if(posicao == TAMANHO)

        printf("Estouro de pilha\n");

    else

    {

       

           posicao++;

       

        printf("cor: %s", prato);

    }

   

}

char *pop()

{

   if(posicao > 0)

   {

       posicao--;

       return vetor[posicao];

   }

   else

   {

       printf("Pilha vazia\n");

       return "";

   }

}

Explicação:

unidade 2----- aula 4  e 5

unidade 3-----aula 7 e 8


shamoaralima: Salvou a minha vida obrigada, não estava conseguindo
Perguntas interessantes