sexta-feira, 26 de abril de 2013

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