Como inverter uma fila em C++

Escrito por mike wallace | Traduzido por josé fabián
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
Como inverter uma fila em C++
Pratique suas habilidades com o C++ escrevendo um programa que inverta uma fila de dados (Ablestock.com/AbleStock.com/Getty Images)

Uma fila é uma forma de armazenar dados usada em programação. Ela consiste em uma sequência de dados que segue a regra "primeiro que entra, primeiro que sai". Ela também possui uma cabeça e uma cauda e os elementos são adicionados ao final e removidos do começo, de forma similar a um grupo de pessoas esperando em um banco. Uma forma de praticar as suas habilidades com o C++ é escrever um programa que inverta uma fila.

Nível de dificuldade:
Moderado

Outras pessoas estão lendo

O que você precisa?

  • Ambiente integrado de desenvolvimento (IDE) de C++, como o Eclipse CDT
  • Compilador de C++, como o GCC

Lista completaMinimizar

Instruções

  1. 1

    Abra o IDE do C clicando no ícone correspondente. Selecione "File/New/Project" (Arquivo/Novo/Projeto) e escolha "C Project" (Projeto de C) para criar um novo projeto nessa linguagem. Você verá um arquivo de código vazio na parte de edição de texto do IDE.

  2. 2

    Importe as bibliotecas "iostream", "queue" e "cstdio" digitando as seguintes linhas no começo do código:

    include <iostream>

    include <queue>

    include <cstdio>

    using namespace std;

  3. 3

    Crie uma função que inverta os conteúdos da fila. A função levará dois argumentos: a fila que você inverterá e uma que armazenará os conteúdos invertidos. É possível essas duas filas como, respectivamente, "forwards" (para a frente) e "backwards" (para trás). Para declarar a função, digite o seguinte código:

    void qReverse(queue<int> forwards, queue<int>& backwards) {}

  4. 4

    Crie uma sentença "if" dentro das chaves na função "qReverse". Esta sentença será executada se a fila "forwards" possuir elementos:

    if(forwards.size() >= 1) {}

  5. 5

    Declare uma variável inteira "x" e armazene nela o primeiro valor da fila "forwards", digitando a seguinte linha entre as chaves da sentença "if":

    int x = forwards.front();

  6. 6

    Remova o primeiro elemento da fila "forwards" por meio da seguinte linha de código, ainda entre das chaves da sentença "if":

    forwards.pop();

  7. 7

    Faça uma chamada recursiva à função "qReverse". As chamadas a função recursivas ocorrem quando você executa uma função dentro dela mesma. Ao fazer uma chamada recursiva à função "qReverse", você colocará os elementos de "forwards" na ordem inversa na fila "backwards". Digite a seguinte sentença entre as chaves da sentença "if":

    qReverse(forwards, backwards);

  8. 8

    Coloque o elemento armazenado na variável "x" na cola "backwards". Como essa sentença se executará após a última chamada recursiva, o último elemento da fila "forwards" ficará na primeira posição da fila "backwards". Digite a seguinte sentença dentro das chaves da sentença "if":

    backwards.push(x);

  9. 9

    Crie uma função principal depois do "}" da sentença "if" e da função "qReverse". A sintaxe será a seguinte:

    int main() {}

  10. 10

    Declare duas filas, "forwardsQueue" e "backwardsQueue", colocando o seguinte código dentro das chaves da função "main":

    queue<int> forwardsQueue, backwardsQueue;

  11. 11

    Adicione elementos na "forwardsQueue" digitando sentenças como as seguintes entre as chaves da função "main":

    forwardsQueue.push(1); forwardsQueue.push(2); forwardsQueue.push(3);

  12. 12

    Faça uma chamada a "qReverse" e passe as filas "forwardsQueue" e "backwardsQueue" como parâmetros digitando o seguinte entre as chaves na função "main":

    qReverse(forwardsQueue, backwardsQueue);

  13. 13

    Exiba os conteúdos de "backwardsQueue" digitando as seguintes sentenças, ainda entre as chaves da função "main":

    while( backwardsQueue.size() ) { cout << backwardsQueue.front() << endl; backwardsQueue.pop(); }

  14. 14

    Compile e execute o programa por meio da seta verde localizada na fila superior de botões do IDE. O programa exibirá os conteúdos de "backwardsQueue", que serão os seguintes:

    3 2 1

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível