Lista (list)

Este post tem o enfoque ao que é a estrutura de dado lista, mas, cada linguagem de programação pode representá-la ao seu modo, alterando brevemente alguma característica.

O que define uma lista

Estrutura com dados sequenciais, sem necessidade de ordem na inserção ordem, armazenamento ou remoção de dados

Pense numa prateleira onde você pode colocar e remover itens em qualquer posição.

Enquanto a fila (FIFO) e a pilha (LIFO) impõem regras rígidas de entrada e saída, a lista permite mais liberdade de manipulação, sendo boa para representar coleções dinâmicas de elementos.

Ela é uma estrutura linear, ainda que os elementos possam estar armazenados de forma não contígua na memória (dependendo da implementação). O acesso é feito via índice (em listas sequenciais) ou via ponteiros (em listas encadeadas).

A lista é uma das estruturas mais flexíveis e versáteis.


Tipos comuns de lista

Lista sequencial

  • Implementada geralmente sobre um array.
  • Os elementos são armazenados em posições contíguas na memória.
  • Acesso por índice é rápido (O(1)), mas inserções/remoções no meio podem ser custosas, elas exigem deslocamento dos elementos.

Lista encadeada

  • Cada elemento (nó) guarda o dado e uma referência para o próximo elemento.
  • Não exige armazenar sequencialmente na memória.
  • Inserções e remoções são rápidas, desde que você tenha a referência correta.
  • Acesso por índice é mais lento (O(n)), pois é preciso percorrer a lista.

Lista duplamente encadeada

  • Cada nó guarda referência para o próximo e para o anterior.
  • Facilita a navegação nos dois sentidos.
  • Consome um pouco mais de memória por causa das referências extras.

Lista circular

  • Similar encadeada, duplamente ou não, a diferença é que o o último elemento aponta para o primeiro, formando um ciclo.
  • Permite percorrer a lista de forma contínua, sem precisar reiniciar manualmente.

Operações comuns em uma lista

  • INSERT: inserir elemento em posição específica.
  • REMOVE: remover elemento de posição específica.
  • GET: acessar elemento pelo índice ou posição.
  • SIZE: retornar o tamanho da lista.
  • EMPTY: verificar se está vazia.
  • SEARCH: buscar elemento pelo valor.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *