Pilhas, filas e listas (Parte III)

21 Maio 2008

A parte sobre listas encerra nosso tutorial, mas não encerra o assunto. Questões diversas sobre performance e gerenciamento de memória  podem ser abordadas em artigos futuros.

Listas para todos

Seja a lista de procurados do FBI ou uma simples lista de feira, toda lista precisa satisfazer algum critério e obedecer certa ordem para ser útil.

Uma lista funcional deve permitir incluir e excluir itens. Deve fornecer um método de ordenação para uma busca em seu conteúdo. Geralmente é fornecido também um método para modificar a posição do item se for necessário.

Há um grupo de classes no Delphi que fornecem a implementação de uma lista básica com os requisitos acima. Este grupo inclui entre outras a TList, TStringList e a classe que nos interessa : TObjectList.

Leia o resto deste post »


Pilhas, Filas e Listas (Parte II)

10 Janeiro 2008

Filas

Sim, eu odeio filas. Mas em programação, filas podem facilitar muito a vida, colocando ordem em nossas rotinas.

Haverá situações em que será necessário garantir que o primeiro elemento adicionado a uma lista seja o primeiro a ser tratado. Esta regra é conhecida como FIFO (first in, firs out- primeiro a entrar, primeiro a sair)

Uma das classes do Delphi que permite tratar um conjunto de objetos obedecendo esta regra é a TObjectQueue (fila de objetos), a segunda classe container deste tutorial.
Leia o resto deste post »


Pilhas, Filas e Listas (Parte I )

18 Dezembro 2007

cubos.gifNeste tutorial faremos um apanhando geral e montaremos um exemplo prático do uso de pilhas, listas e filas. O exemplo será baseado no código de Fernando Cesar Brito encontrado em seu artigo sobre Pilha (Stack). O exemplo dele foi estendido para uso de filas e listas. Na parte final (III) disponibilizaremos aplicativo completo usando os exemplos do tutorial.

Classes

O Object Pascal tem na manga algumas classes úteis mas que são pouco usadas. É o caso destas três : TObjectStack, TObjectList e TObjectQueue.

Estas classes funcionam basicamente como containers de objetos. Um ‘container’ é um objeto que armazena outros objetos e disponibiliza métodos de acesso a seus elementos. O que diferencia as classes acima mencionadas é que cada uma manipula objetos usando métodos com lógicas diferentes.

Esta primeira parte tratará da TObjectStack (Pilha de Objetos).

Leia o resto deste post »