Discussão do artigo "Do básico ao intermediário: Filas, Listas e Árvores (II)"

 

Novo artigo Do básico ao intermediário: Filas, Listas e Árvores (II) foi publicado:

Este é um artigo do qual você meu caro leitor, deverá estudar com muita calma. Isto devido ao tipo de coisa que será explicado nele. Apesar de termos procurando manter as coisas o mais simples e didáticas quanto foi possível ser feito. O conteúdo apresentado aqui, é sem sobra de dúvida algo muito complicado para quem está iniciando na programação. Mas isto não é motivo para que você venha a desanimar ou ignorar o que está sendo explicado aqui. Já que este artigo fará um elo, entre dois assuntos completamente diferentes, porém intimamente ligados.

Ok, muito provavelmente, se você está iniciando na programação, pode ter ficado um tanto quanto confuso sobre onde e como utilizar o que foi visto no artigo anterior. No entanto, existe uma enormidade de momentos em que saber como implementar o que foi visto e explicado ali, poderá fazer a diferença na sua vida como programador. Mas você deve ter notado que tanto a fila do tipo FIFO quanto a do tipo circular, tem em comum o fato de que os elementos serão sempre lidos na ordem em que eles foram colocados na fila. Ou seja, o elemento mais antigo é sempre o primeiro a ser lido, e por consequência o elemento mais recente na fila é sempre o último a ser lido. No entanto, muitas vezes precisamos que esta ordem seja invertida. Ou seja, queremos que o elemento mais recente seja o primeiro a ser lido, e que o elemento mais antigo na fila seja o último a ser lido.

Você pode até pensar que para fazer isto, bastaria que invertêssemos a ordem de leitura dos elementos colocados em uma fila do tipo FIFO ou do tipo circular. De fato, e em alguns casos práticos é exatamente o que acontece. Porém, toda via e, entretanto, existe um tipo de fila especialmente criada para que isto venha a ser implementado. Sem que venhamos a ter uma modificação no código já implementado. Este tipo de fila especialmente criado para inverter a ordem, é conhecido como pilha.

Uma pilha nada mais é do que o próprio nome indica. Ou seja, quando adicionamos novos elementos, não podemos remover elementos mais antigos sem antes remover os elementos mais recentes. Existe até mesmo um brinquedo que exemplifica perfeitamente o que seria uma pilha e onde ela poderia ser utilizada. Tal brinquedo é mostrado na imagem logo abaixo.

Para quem desconhece este brinquedo, ele é conhecido como Torre de Hanói. Acreditem, este brinquedo já foi usado como forma de análise e comparação de CPUs no passado. Isto porque existem formas de implementar ele a fim de ter uma boa medida da velocidade de processamento. Porém, devido ao fato de que muitas CPUs começaram a ser otimizadas para fazer com que o algoritmo ficasse mais rápido do que seria de fato a velocidade real de execução da CPU. Tal modelo de comparação foi abandonado. Se desejar experimentar a forma de solução desta torre, você pode dar uma olhada no site Somatemática.

Autor: CODE X