Guest User

Untitled

a guest
Jan 16th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.96 KB | None | 0 0
  1. /*
  2. Dada uma lista encadeada de caracteres formada por uma sequência alternada de
  3. letras e dígitos, construa um método que retorne uma lista na qual as letras s„o mantidas na sequência original e os dígitos são colocados na ordem inversa. Ver arquivo Descricao_tarefa04.txt
  4.  
  5. Exemplos:
  6. A 1 E 5 T 7 W 8 G -> A E T W G 8 7 5 1
  7. 3 C 9 H 4 Q 6 -> C H Q 6 4 9 3
  8.  
  9. Como mostram os exemplos, as letras devem ser mostradas primeiro, seguidas dos
  10. dígitos
  11.  
  12. Sugestões:
  13. - usar uma fila e uma pilha;
  14. - supor um método ehDigito() retorna booleano que retorna verdadeiro caso um
  15. caractere seja um dígito.
  16. */
  17.  
  18.  
  19. #include <iostream>
  20.  
  21.  
  22. #define SIZE 100
  23.  
  24. using namespace std;
  25.  
  26. struct No{
  27.     char valor;
  28.  
  29.     No* proximo;
  30.  
  31. };
  32.  
  33. struct Fila{
  34.     No* cabeca;
  35. };
  36.  
  37. void criar_fila(Fila* fila){
  38.     fila->cabeca=NULL;
  39. }
  40.  
  41. void inserir_elemento_fila(No no, Fila *fila){
  42.     if (fila->cabeca==NULL){
  43.         fila->cabeca= &no;
  44.  
  45.     }
  46.     else {
  47.         No* no_atual = fila->cabeca;
  48.         //cout<<6<<endl;
  49.  
  50.         while(no_atual->proximo != NULL){
  51.             no_atual = no_atual->proximo;
  52.             //cout<<7<<endl;
  53.         }
  54.  
  55.     //cout<<8<<endl;
  56.     no_atual->proximo = &no;
  57.     }
  58. }
  59.  
  60. /*
  61. void imprimir_fila(Fila fila){
  62.     if (fila.cabeca==NULL){
  63.         cout<< "Fila vazia!"<<endl;
  64.  
  65.     }
  66.     else {
  67.         cout <<1;
  68.         No* no_atual = fila.cabeca;
  69.         cout<<2;
  70.         while(no_atual != NULL){
  71.             //cout<<3;
  72.             cout<< no_atual->valor;
  73.             //cout<<4;
  74.             no_atual = no_atual->proximo;
  75.             //cout<<5;
  76.  
  77.         }
  78.     }
  79. }*/
  80.  
  81. int main () {
  82.  
  83.     char n;
  84.     No no;
  85.  
  86.     Fila fila;
  87.     criar_fila(&fila);
  88.  
  89.  
  90.     //imprimir_fila(fila);
  91.     //cout<<1<<endl;
  92.     for (int i = 0; i < 5; ++i)
  93.     {
  94.         //cout<<2<<endl;
  95.         cin >> n;
  96.  
  97.         no.valor=n;
  98.         ////cout<<3<<endl;
  99.         no.proximo=NULL;
  100.         //cout<<4<<endl;
  101.  
  102.  
  103.         inserir_elemento_fila(no, &fila);
  104.         //cout<<5<<endl;
  105.     }
  106.     cout<<"impressao";
  107.  
  108.     No* no_atual = fila.cabeca;
  109.     while(no_atual != NULL){
  110.         //cout<<3;
  111.         cout<< no_atual->valor;
  112.         //cout<<4;
  113.         no_atual = no_atual->proximo;
  114.         //cout<<5;
  115.  
  116.     }
  117.  
  118.  
  119.     return 0;
  120. }
Add Comment
Please, Sign In to add comment