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í?co 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 importantes, pois constituem uma forma simples de interligar os itens de um conjunto, agrupando informações referentes a um conjunto de elementos que se relacionam entre si de alguma forma.


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.


Copyright © 2014 AIEC.