Listas ligadas sao um outro tipo de estrutura de dados, e em conjunto com as estruturas nativas da linguagem de programacao, vetores e matrizes, visam manejar e organizar os dados de um determinado modo. As listas ligadas foram criadas para contornar o problema de estruturar os dados em vetores e matrizes, que dispondo os dados de modo sequencial, com acesso indexado, apresentam a desvantagem de lenta velocidade de insercao e remocao de elementos, visto que e preciso alterar todo o conjunto em caso de uma remocao no inicio de um vetor, reposicionando todos os demais, o que consome muito tempo de computacao. Ja as listas ligadas, por serem criadas dinamicamente, por alocacao de memoria em tempo de execucao, tem a vantagem de alocar um novo elemento no inicio, final ou meio da lista sem ter que alterar todo o conjunto de elementos, somente localizando a posicao correta de insercao e definindo os novos ponteiros que manterao a lista coesa.As listas sao representadas por nodos ou nos, que sao em geral structs com dados que serao armazenados na lista, por exemplo, uma lista onde cada no possua o cadastro de um cliente, e os ponteiros que ligam estes nos uns aos outros, veja o exemplo:struct cliente{int id; // identificacao do clientechar nome[30];float totalCompra;struct cliente *prox, *ant;};O no representado por cliente, possui dois ponteiros, denominados *prox e *ant, que visam guardar o endereco de memoria do no anterior e do no posterior ao no considerado atual, assim, possuindo as referencias, e possivel caminhar na lista, de modo que um ponteiro tendo o endereco do seguinte, aponta para o proximo, e dessa forma sucessivamente, ate alcancar o final da lista, sinalizado por um ponteiro que guarda NULL.Nos proximos posts sobre listas ligadas apresento os codigos de insercao, remocao e busca. Antes de implementa-los, vale ressaltar que ha dois modos de criar listas ligadas, usando C, totalmente estruturado, e C++, orientado a objeto, com a possibilidade de definir templates, e utilizar-se do recurso de tipos genericos ( gabaritos ) para criar listas para diversos tipos, int, float, double, char, sem a necessidade de codificar uma lista para cada um. Para facilitar a manipulacao de muitos dados ao mesmo tempo uma estrutura de dados homogenea e disponibilizada. Para tais implementacoes usa-se vetores e matrizes.Vetores sao posicoes contiguas de memoria onde o armazenamento e realizado de modo sequencial. Ja as matrizes sao colecoes de dados que podem conter mais de uma dimensao, matrizes planas, que sao representadas por linhas e colunas (as mesmas usadas em matematica) e matrizes de duas ou mais dimensoes. Tente usar seu poder de abstracao para visualizar uma matriz e enxerga-la como um cruzamento de linhas e colunas, onde cada celula representa uma porcao de memoria para armazenar um dado elemento.Todos os tipos de dados apresentados nos posts anteriores sao suportados por vetores e matrizes, os quais podem ser de inteiros, reais ou caracteres (chamados usualmente de strings).Para ilustrar melhor como funcionam tais estruturas segue abaixo suas construcoes:declare soma[10]: inteiro;declare media[100] : real;declare nomes[20][100] : caracter;Representacao do vetor soma[10]:Esta e a maneira como o