Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Dada uma lista encadeada de caracteres formada por uma sequência alternada de
- 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
- Exemplos:
- A 1 E 5 T 7 W 8 G -> A E T W G 8 7 5 1
- 3 C 9 H 4 Q 6 -> C H Q 6 4 9 3
- Como mostram os exemplos, as letras devem ser mostradas primeiro, seguidas dos
- dígitos
- Sugestões:
- - usar uma fila e uma pilha;
- - supor um método ehDigito() retorna booleano que retorna verdadeiro caso um
- caractere seja um dígito.
- */
- #include <iostream>
- #define SIZE 100
- using namespace std;
- struct No{
- char valor;
- No* proximo;
- };
- struct Fila{
- No* cabeca;
- };
- void criar_fila(Fila* fila){
- fila->cabeca=NULL;
- }
- void inserir_elemento_fila(No no, Fila *fila){
- if (fila->cabeca==NULL){
- fila->cabeca= &no;
- }
- else {
- No* no_atual = fila->cabeca;
- //cout<<6<<endl;
- while(no_atual->proximo != NULL){
- no_atual = no_atual->proximo;
- //cout<<7<<endl;
- }
- //cout<<8<<endl;
- no_atual->proximo = &no;
- }
- }
- /*
- void imprimir_fila(Fila fila){
- if (fila.cabeca==NULL){
- cout<< "Fila vazia!"<<endl;
- }
- else {
- cout <<1;
- No* no_atual = fila.cabeca;
- cout<<2;
- while(no_atual != NULL){
- //cout<<3;
- cout<< no_atual->valor;
- //cout<<4;
- no_atual = no_atual->proximo;
- //cout<<5;
- }
- }
- }*/
- int main () {
- char n;
- No no;
- Fila fila;
- criar_fila(&fila);
- //imprimir_fila(fila);
- //cout<<1<<endl;
- for (int i = 0; i < 5; ++i)
- {
- //cout<<2<<endl;
- cin >> n;
- no.valor=n;
- ////cout<<3<<endl;
- no.proximo=NULL;
- //cout<<4<<endl;
- inserir_elemento_fila(no, &fila);
- //cout<<5<<endl;
- }
- cout<<"impressao";
- No* no_atual = fila.cabeca;
- while(no_atual != NULL){
- //cout<<3;
- cout<< no_atual->valor;
- //cout<<4;
- no_atual = no_atual->proximo;
- //cout<<5;
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment