Listas

Listas são estruturas de dados que armazenam coleções de elementos de forma sequencial, permitindo inserções, remoções e buscas de maneira organizada.1 São fundamentais para representar filas, buffers, tabelas e outros componentes em sistemas computacionais.

Listas Lineares Simples

São listas em que os elementos são armazenados de forma sequencial, geralmente em vetores. Cada posição da lista contém um dado, e a manipulação é feita por meio de índices.

  • Estrutura estática (tamanho fixo).
  • Boa eficiência para acesso direto.
  • Inserções e remoções são custosas, pois exigem deslocamento dos elementos.

Listas Ligadas Estáticas

São implementadas em vetores, mas simulam uma ligação entre elementos através de índices que funcionam como “ponteiros”.

  • Estrutura híbrida: usa vetor, mas com lógica de lista ligada.
  • Não usa alocação dinâmica, mas permite flexibilidade na organização dos dados.
  • Muito utilizada quando o ambiente não permite ponteiros (ex: CLPs ou sistemas embarcados sem malloc).

Listas Ligadas Dinâmicas

São compostas por nós alocados dinamicamente, onde cada nó contém um dado e um ponteiro para o próximo elemento.

  • Permitem crescimento e redução em tempo de execução.
  • Inserções e remoções são eficientes, especialmente no início e meio da lista.
  • Requer gerenciamento de memória (alocação e liberação).

Listas Ligadas Circulares

São listas em que o último elemento aponta de volta para o primeiro, formando um ciclo.

  • Podem ser simples ou duplamente encadeadas.
  • Úteis para aplicações cíclicas, como buffers circulares e sistemas com varredura contínua.
  • Facilitam a navegação contínua entre elementos, sem precisar reiniciar a lista.

Aplicações na Engenharia de Controle e Automação

Listas são úteis para:

  • Armazenar leituras temporais de sensores (buffer de dados);
  • Controlar filas de eventos ou comandos;
  • Implementar lógicas de varredura em tempo real (ex: SCAN de sensores);
  • Organizar parâmetros de configuração ou registros de operação.

Cada tipo de lista deve ser escolhido com base nos requisitos de memória, tempo de resposta e complexidade de inserção ou de acesso.