ATPS

1121 palavras 5 páginas
4.0 Listas com Vetores: Desvantagens
 Tamanho máximo fixo
 Mesmo vazias ocupam espaço grande de memória
 Mesmo que utilizemos um vetor de ponteiros, se quisermos prever uma lista de 10.000 elementos, teremos 40.000 bytes desperdiçados.
 Operações podem involver muitos deslocamentos de dados:
 Inclusão em uma posição ou no início
 Exclusão em uma posição ou no início
4.1 Listas Encadeadas
 São listas onde cada elemento contido em uma lista está armazenado em um TAD chamado elemento de lista.
 Cada elemento de lista referencia o próximo e só é alocado dinamicamente quando é necessário
 Para referenciar o primeiro elemento utilizamos um TAD cabeça de lista. 4.1.1 Modelagem de Dados
Cabeça de Lista
 Necessitamos:
 Um ponteiro para o primeiro elemento da lista.
 Um inteiro para indicar quantos elementos a lista possue.
 Pseudo-código: tipo Lista { Elemento *dados; inteiro tamanho;
};
Elemento de Lista
• Necessitamos:
 Um ponteiro para o próximo elemento da lista.
 Um campo do tipo da informação que vamos armazenar.
• Pseudo-código: tipo Elemento { Elemento *próximo; tipo-que-eu-vou-usar-nesta-aplicação info;
};
4.1.2 Listas Encadeadas: Modelagem de Dados Genérica
 Para tornar todos os algoritmos da lista mais genéricos, fazemos o campo info ser um ponteiro para um elemento de informação. Modelagem: Elemento de Lista II
 Pseudo-código II: tipo Elemento { Elemento *próximo; TipoInfo *info;
};
tipo TipoInfo { tipo-do-campo1 campo1; tipo-do-campo2 campo2; ? tipo-do-campoN campoN;
}
 Razões para a modelagem do TipoInfo:
 Vamos na maioria dos algoritmos trabalhar com algum elemento de infomação.
 Se este elemento é somente um ponteiro para um TipoInfo, não importando o que este seja, teremos algoritmos totalmente genéricos.
 Posso usar o mesmo código de lista para muitas aplicações diferentes simplesmente recompilando.
 Desvantagens:
 O

Relacionados

  • atps
    412 palavras | 2 páginas
  • atps
    460 palavras | 2 páginas
  • atps
    621 palavras | 3 páginas
  • atps
    583 palavras | 3 páginas
  • Atps
    1966 palavras | 8 páginas
  • atps
    286 palavras | 2 páginas
  • ATPS
    342 palavras | 2 páginas
  • atps
    336 palavras | 2 páginas
  • atps
    1226 palavras | 5 páginas
  • atps
    1023 palavras | 5 páginas