Inúmeros tipos de dados podem ser representados por listas. Suponhamos, por exemplo, que você precise fazer um programa que cadastre um número indefinido de pessoas. Para isso, você não irá criar uma matriz ou vetor, pois mesmo que você crie 1000 posições, isso irá consumir muita memória, desde o início do processo, sem contar a possibilidade de se ter 900 pessoas, ou até mesmo 1500 pessoas, ou seja, o valor é variável. Nesse caso, o ideal é criar uma lista encadeada, que é manipulada de forma dinâmica. Outros exemplos de sistemas de informação que podem utilizar listas são: informações sobre os funcionários de uma empresa, notas de alunos, itens de estoque etc.
As listas podem ser implementadas de várias maneiras, tanto em uma linguagem de programação procedural como em uma linguagem de programação funcional.
As listas são estruturas dinâmicas, em oposição aos vetores (arrays), os quais são estruturas estáticas e contém um conjunto específico de dados. Virtualmente, uma lista pode conter infinitos itens. As operações sobre listas são limitadas ao tipo de dados que uma lista contém. Por exemplo, listas de dados numéricos podem ser tratadas matematicamente, enquanto listas de caracteres podem ser ordenadas, concatenadas. O conjunto de números [20, 13, 42, 23,54] é uma lista numérica de inteiros; [‘a’, ‘d’, ‘z’, ‘m’, ‘w’, ‘u’] é uma lista de caracteres; e ["maçã”, "abacaxi”, "pera"] é uma lista de frutas. Sendo que n>= 1, n1 é o primeiro item da lista e xn o último item da lista.
As listas são úteis em aplicações tais como manipulação simbólica, em que se manipulam as variáveis em expressões algébricas, a gerência de memória, que define as prioridades da memória do computador ou outro dispositivo, simulação, e onde é possível juntar informações sequenciais ou dinâmicas para realizar uma simulação e compiladores, que gravam uma sequência de procedimentos para transformar o programa em um software executável.
Uma lista ligada ou lista encadeada é uma estrutura de dados linear e dinâmica. Ela é composta por células que apontam para o próximo elemento da lista. Para "ter" uma lista ligada/encadeada, basta guardar seu primeiro elemento, e seu último elemento aponta para uma célula nula. O esquema a seguir representa uma lista ligada/encadeada com 5 elementos:
Célula 1 ----> Célula 2 ---> Célula 3 ---> Célula 4 ---> Célula 5 ---> (Nulo)
XProgramação utilizada nas linguagens mais antigas, como o COBOL, onde possui estruturas que são chamadas de procedimento ou procedure.
XProgramação mais atual, como o ASP, PHP, etc, em que se utilizam funções para montar um aplicativo. Como exemplo, função para validar CPF, função para buscar endereço pelo CEP, etc.
XUma lista mutável ou dinâmica pode permitir que itens sejam inseridos, substituídos ou excluídos durante a existência da lista.
XAs estruturas de lista estáticas permitem apenas a verificação e enumeração dos valores.
XA manipulação de símbolos é o manuseio da simbologia da matemática, serve assim para resolver operações algébricas, é o manuseio das variáveis nas expressões matemáticas.
XÉ a técnica de estudar o comportamento e reações de determinados sistemas através de modelos. A simulação computacional de sistemas, ou apenas simulação, consiste na utilização de certas técnicas matemáticas, empregadas em computadores, as quais permitem imitar o funcionamento de, praticamente qualquer tipo de operação ou processo do mundo real, ou seja, é o estudo do comportamento de sistemas reais através do exercício de modelos.
XCompilador é um programas que traduz o código fonte de uma linguagem de programação de alto nível para uma linguagem de programação de baixo nível (por exemplo, Assembly ou código de máquina). Contudo alguns autores citam exemplos de compiladores que traduzem para linguagens de alto nível como C.
X