Um outro exemplo de pilha é fazer a leitura de uma frase e inverter somente as palavras.
Por exemplo: A casa da titia maria.
Invertendo as palavras temos: A asac ad aitit airam
A ideia aqui é percorrer a frase e obter os caracteres diferentes de espaço em branco e fazer a inserção numa pilha.
Quando for encontrado outro espaço em branco ou chegou ao final da frase, os elementos da pilha são removidos.
Assim:
int main()
{ int op,i ;
char x,frase[30];
pilha *p;
inicializa(p);
printf(" Entre com uma frase ");
gets(frase);
for(i=0; i<strlen(frase); i++)// percorre a frase
{ if (frase[i]!=' ') // se for não for branco faça push
push(p,frase[i]);
else // se for branco remove todos os elementos
{ // da pilha
while (!vazia(p))
printf("%c",pop(p));
printf("%c",frase[i]);
}//fim do else
}// fim do for
// depois de percorrido a frase pode ser que a pilha ainda esteja
// não vazia
while (!vazia(p))
printf("%c",pop(p));
getch();
}
Nenhum comentário:
Postar um comentário