e iaa
Encadeadas
• Estruturas estáticas (por ex.: vetores e matrizes)
– Principais limitações:
• Desperdício de memória
1
4
• Memória insuficiente
1
4
3
9
0
16
6
2
8
10
5
7
21
2
• Estruturas estáticas
– Principais limitações (cont.)
• Gestão ineficiente dos dados
16
?
1
4
8
9
10
15
21
38
40
45
71
3
• São estruturas de dados que permitem a alocação e desalocação de memória em tempo de execução. – Tamanho da lista reflete a necessidade de memória
– Abordagem realista
– Linguagem C oferece comandos para alocação e desaloção de memória
4
• Crescem e decrescem em tempo de execução
1
1
4
1
4
1
4
8
5
• Uma lista é formada por um conjunto de elementos que possuem informações sobre uma entidade e o endereço do próximo elemento. • Cada elemento é chamado de nodo
1
campo com informação
sobre a entidade
campo com endereço
da próxima entidade
6
• Sintaxe em C:
cod
apont
1
prox
typedef struct elem { int cod; struct elem *prox;
} NODO;
7
• Um nodo pode ter vários campos
typedef struct aluno{ int mat; char nome[15]; char nome[10]; float cre; struct aluno *prox;
} NODO;
typedef struct livro{ int isbn char titulo[50]; char autor[20]; char editora[15] struct livro *prox;
} NODO;
8
• Uma lista deve ter:
– Uma disciplina de inserção e de remoção de elementos • FIFO (First-In, First-Out), LIFO(Last-In, First-Out), ordenada etc. – Uma forma de varrer seus elementos
• Simplesmente ou duplamente encadeada
9
• Operações básicas
– Inserir (início, fim, em ordem)
– Remover (início, fim, em ordem)
– Exibir (primeiro,