Buscar

2) Faça um programa em C++ para criar uma fila dinâmica de inteiros positivos, através de sucessivas inserções ou enfileiramentos. Ao ser digitado ...

2) Faça um programa em C++ para criar uma fila dinâmica de inteiros positivos, através de sucessivas inserções ou enfileiramentos. Ao ser digitado um valor negativo ou nulo, a criação da fila deverá ser encerrada. Não esqueça de tratar fila vazia. Após a criação da fila, faça o que se pede:

O programa deve permitir a inserção de valores inteiros positivos na fila;
O programa deve encerrar a inserção de valores na fila quando for digitado um valor negativo ou nulo;
O programa deve tratar a fila vazia;
O programa deve imprimir na tela os dados da fila;
O programa deve desenfileirar um valor, apresentando-o na tela, após a mensagem “Elemento desenfileirado “;
O programa deve contar o número de dados da fila;
O programa deve desenfileirar tudo, apresentando na tela apenas os dados ímpares.

Essa pergunta também está no material:

Lista8 ESTRUTURA DE DADOS
1 pág.

Estrutura de Dados I Instituto Federal de Educação, Ciência e Tecnologia do CearáInstituto Federal de Educação, Ciência e Tecnologia do Ceará

💡 1 Resposta

User badge image

Ed Verified user icon

Segue abaixo um exemplo de programa em C++ que atende aos requisitos solicitados: ```c++ #include using namespace std; struct Node { int data; Node* next; }; class Queue { private: Node* front; Node* rear; int count; public: Queue() { front = NULL; rear = NULL; count = 0; } void enqueue(int value) { Node* newNode = new Node; newNode->data = value; newNode->next = NULL; if (front == NULL) { front = newNode; } else { rear->next = newNode; } rear = newNode; count++; } void dequeue() { if (front == NULL) { cout << "Fila vazia." << endl; } else { Node* temp = front; cout << "Elemento desenfileirado: " << temp->data << endl; front = front->next; delete temp; count--; } } void print() { if (front == NULL) { cout << "Fila vazia." << endl; } else { Node* temp = front; cout << "Dados da fila: "; while (temp != NULL) { cout << temp->data << " "; temp = temp->next; } cout << endl; } } void printOdd() { if (front == NULL) { cout << "Fila vazia." << endl; } else { Node* temp = front; cout << "Dados ímpares da fila: "; while (temp != NULL) { if (temp->data % 2 != 0) { cout << temp->data << " "; } temp = temp->next; } cout << endl; } } int size() { return count; } }; int main() { Queue q; int value; do { cout << "Digite um valor inteiro positivo (ou um valor negativo/nulo para encerrar): "; cin >> value; if (value > 0) { q.enqueue(value); } } while (value > 0); q.print(); q.dequeue(); cout << "Número de dados da fila: " << q.size() << endl; q.printOdd(); while (q.size() > 0) { q.dequeue(); } return 0; } ``` Espero ter ajudado!

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais