Uma estrutura de dados do tipo pilha pode ser usado em um algoritmo que permite imprimir uma palavra de forma invertida. Exemplo: FELICIDADE deve ser impresso como EDADICILEF.Utilizando o algoritmo abaixo:#include#includeint i, topo = 0, tamanho = 0;char pilha [50];char palavra [50];void empilhar ( char letra);char desempilhar (void);int main (void){printf(''Digite a palavra: '');scanf ( ''%s, palavra);tamanho = strlen (palavra);for ( i = 0; i < tamanho; i++){empilhar(palavra[i] );}printf (''Palavra normal: %s\n'', palavra);for ( i = 0; i <= tamanho; i++){palavra [i] = desempilhar ();}printf( ''Palavra invertida: %s\n'', palavra);return (0);}Em C, faça o que se pede nos seguintes itens a seguir:a) desenvolva a rotina empilhar (push) que inclui um elemento na pilha.b) desenvolva a rotina de desempilhar (pop) que retira um elemento da pilha.c) complete o algoritmo que lê uma palavra e, usando a pilha, a imprime de forma invertida.
Soluções para a tarefa
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]) {
char pilha[50],palavra[50];
int i,tamanho;
void empilhar(char letra);
char desempilhar (void);
printf("Digite a frase que pretendes que invertida: ");
gets(pilha); //Armazena a frase na variável pilha
tamanho=strlen(pilha)-1; //strlen calcula a quantidade de caracteres que possui a pilha
for(i=0;pilha[i]!='\0';i++){ //Repete enquanto não chegar ao final da pilha
palavra[tamanho]=pilha[i];
tamanho--;
}
palavra [i]='\0'; // o programa pode mostrar lixo
strcpy(pilha,palavra); //Copia para a variável pilha o conteúdo da variável palavra
printf("\n\nA frase inversa e:\n%s\n\n",pilha);
system("pause");
return 0;
}