Pilha, fila, listas dinâmicas

Gostaria de entender quando, ou onde utilizar cada uma destas estruturas. Porém com exemplos reais. Um exemplo, quando eu for trabalhar numa empresa com banco de dados, qual destas estruturas seria recomendável.

Obrigada.

Pilha: associe as pilhas como uma “memória do que aconteceu”. Um exemplo clássico é o mecanismo de desfazer e refazer (undo e redo) de ferramentas. Procure pelo padrão de projeto Memento. A “ideia” das pilhas é usada tbm de forma implícita, dependendo da implementação, na execução de funções/métodos. Quando se aplica recursão isso fica ainda mais evidente. A implementação de analisadores sintáticos de compiladores e interpretadores tbm usa pilhas de forma intensiva, seja a estrutura em si ou as chamadas recursivas de parsers LR(k).

Fila: quando vc precisa resolver algum problema onde há a necessidade de que a ordem dos dados ou instruções precisar ser seguida, servindo primeiro que chegou primeiro. Por exemplo, vc precisa implementar um serviço de mensagens onde a ordem das mensagens é importante, por exemplo, o armazenamento de dados relativos à coordenadas de um carro em uma corrida.

Lista: é a estrutura de dados linear mais versátil pois, além de conseguir simular pilhas e filas, ainda permite a manipulação dos dados dentro da estrutura. A ordem de crescimento as operações vai depender da implementação. Por exemplo, um ArrayList do Java garante operações de ordem de crescimento constante, pois um array é usado para armazenar os dados ao invés de uma estrutura encadeada como na implementação LinkedList, onde as operações nas extremidades tem crescimento constante enquanto as dentro da estrutura crescimento linear. Vc usará MUITO as listas para guardar dados que vieram do banco e para serem processados, por exemplo, para criar tabelas para apresentar os dados.

Esses são os casos principais, haverá vários outros para explorar. Vc precisa entender como as estruturas funcionam para poder aplicar em problemas que precisam desse comportamento para serem resolvidos.

1 curtida

Uauu, finalmente uma explicação clara, obrigadíssima.

1 curtida