Prof. Ms. Thiago Salhab Alves 2 Lista Simplesmente Encadeada Numa lista encadeada, para cada novo elemento inserido na estrutura, alocamos um espao de memria para armazen-lo. Dessa forma, o espao total de memria gasto pela estrutura proporcional ao nmero de elementos armazenados. No entanto, no podemos garantir que os elementos armazenados na lista ocuparo um espao de memria contguo; portanto, no temos acesso direto aos elementos da lista. Lista Simplesmente Encadeada Para percorrer todos os elementos da lista, devemos explicitamente guardar o seu encadeamento, o que feito armazenando-se, junto com a informao de cada elemento, um ponteiro para o prximo elemento da lista. Lista Simplesmente Encadeada A Figura 1 ilustra o arranjo da memria de uma lista encadeada. valor1 prox valor2 prox valor3 prox Insero pelo final da lista valor3 prox valor2 prox valor1 prox Insero pelo incio da lista Lista Simplesmente Encadeada A estrutura consiste de uma seqncia encadeada de elementos, em geral chamados de ns da lista. Um n da lista representado por uma estrutura que contm, conceitualmente, dois campos: a informao armazenada e o ponteiro para o prximo elemento da lista. Lista Simplesmente Encadeada A lista representa por um ponteiro para o primeiro elemento (ou n). Do primeiro elemento, podemos alcanar o segundo, seguindo o encadeamento, e assim por diante. O ltimo elemento da lista armazenada, como o prximo elemento, um ponteiro invlido, com valor NULL, e sinaliza, assim, que no existe prximo elemento. Lista Simplesmente Encadeada Caractersticas das Listas Encadeadas: So implementadas atravs de variveis dinmicas; Os ns que compem a lista devem ser agregados do tipo registro contendo, pelo menos, dois campos: um campo de tipo simples ou construdo para abrigar as informaes armazenadas na lista e um campo do tipo ponteiro para abrigar o endereo do n subseqente da lista; Lista Simplesmente Encadeada O acesso aos ns componentes da lista seqencial (para se acessar o 4o elemento, necessrio passar antes pelo 3o, para se acessar o 3o elemento, necessrio passar antes pelo 2o e assim sucessivamente); As estruturas de representao de Listas Ligadas devem obrigatoriamente suportar conceitos como ponteiros e alocao dinmica; As Listas Ligadas podem ser simplesmente encadeadas (um nico ponteiro por n) ou duplamente encadeadas (dois ponteiros por n). Lista Simplesmente Encadeada Vantagens e Desvantagens: Maior complexidade inerente manipulao de ponteiros (desvantagem); O fato de nem todas as linguagens de programao permitirem a construo de estruturas para a representao de Listas Ligadas (desvantagem); Lista Simplesmente Encadeada A possibilidade de se trabalhar com listas de tamanhos indefinidos, que podem crescer e decrescer conforme a necessidade (vantagem); Maior facilidade para a realizao de operaes de insero e remoo, que consistem basicamente no rearranjo de alguns ponteiros (vantagem). Lista Simplesmente Encadeada Principais Operaes: Insero de elementos em qualquer posio da lista (incio ou final); Retirar elemento de qualquer posio lista; Impresso da lista; Busca de elementos na lista;