on-load-remove-class="default-font">
×
Loading ...

Como inverter uma fila em C++

Atualizado em 20 julho, 2017

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.

Instruções

Pratique suas habilidades com o C++ escrevendo um programa que inverta uma fila de dados (Ablestock.com/AbleStock.com/Getty Images)
  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.

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

    include

    include

    include

    using namespace std;

  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 forwards, queue& backwards) {}

  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. 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. 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. 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. 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. Crie uma função principal depois do "}" da sentença "if" e da função "qReverse". A sintaxe será a seguinte:

    int main() {}

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

    queue forwardsQueue, backwardsQueue;

  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. 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. 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. 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

Loading...

O que você precisa

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

Referências

Loading ...
Loading ...