Introduo Programao Engenharia da Computao Aula Prtica 11

  • Slides: 11
Download presentation
Introdução à Programação Engenharia da Computação Aula Prática 11 Lista Encadeada Monitoria 2009. 1

Introdução à Programação Engenharia da Computação Aula Prática 11 Lista Encadeada Monitoria 2009. 1

Tipos de Estruturas de Dados As estruturas de armazenamento de dados podem ser classificadas

Tipos de Estruturas de Dados As estruturas de armazenamento de dados podem ser classificadas da seguinte maneira: • Estruturas estáticas: podem armazenar até uma quantidade fixa de elementos, que deve ser indicada quando ela é criada; • Estruturas dinâmicas: o tamanho e a capacidade variam de acordo com a demanda, a medida que o programa vai sendo executado. Em geral, são construídas com ponteiros/referências.

Estruturas Estáticas: Arrays Estruturas que armazenam uma quantidade fixa de elementos do mesmo tipo.

Estruturas Estáticas: Arrays Estruturas que armazenam uma quantidade fixa de elementos do mesmo tipo. O acesso a um elemento é feito a partir do índice do elemento desejado. A A[0] 0 1 2 A[3] . . . A[n-1] 3 . . . n-1 Arrays não podem armazenar mais elementos do que o seu tamanho, logo, o tamanho deve ser o máximo necessário.

Estruturas Estáticas: Arrays Quando a quantidade de elementos é variável, o uso de arrays

Estruturas Estáticas: Arrays Quando a quantidade de elementos é variável, o uso de arrays pode desperdiçar memória, já que nem todas as suas posições são necessariamente ocupadas. . A 0 1 2 Espaço utilizado 3 . . . n-1 Espaço desperdiçado

Estruturas Dinâmicas: Listas Estruturas criadas para evitar o desperdício de memória, alocando apenas o

Estruturas Dinâmicas: Listas Estruturas criadas para evitar o desperdício de memória, alocando apenas o espaço necessário para seus dados. A construção é feita a partir de ponteiros/referências. Antes da inserção: Após a inserção: 5 8 1 4 3

Listas Encadeadas Ao contrário de um array, uma lista não pode acessar seus elementos

Listas Encadeadas Ao contrário de um array, uma lista não pode acessar seus elementos de modo direto, e sim, de modo seqüencial, ou seja, um por vez A L 3 3 1 1 2 2 7 7 A estrutura Lista geralmente contém uma referência para o primeiro elemento da lista, a partir do qual todos os outros poderão ser acessados.

Listas Encadeadas Armazenam uma quantidade variável de elementos do mesmo tipo Lista de inteiros

Listas Encadeadas Armazenam uma quantidade variável de elementos do mesmo tipo Lista de inteiros L 5 8 1 4 Lista de referências para arrays de char L “Algoritmos” “Estruturas” “Dados”

Listas Simplesmente Encadeadas Listas são formadas por estruturas chamadas nós. Um nó é uma

Listas Simplesmente Encadeadas Listas são formadas por estruturas chamadas nós. Um nó é uma estrutura auto-referencial, isto é, contém uma referência para outra estrutura do mesmo tipo L Dado armazenado no nó atual 3 1 Referência para o próximo elemento da lista 2 Indicador do fim da lista (referência null)

Exemplo de Implementação struct No { //dados. . . struct No *proximo; }; struct

Exemplo de Implementação struct No { //dados. . . struct No *proximo; }; struct Lista { struct No * raiz; };

Exemplo de Implementação typedef struct no { //dados. . . struct no *proximo; }No;

Exemplo de Implementação typedef struct no { //dados. . . struct no *proximo; }No; typedef struct _lista { No * raiz; }Lista;

Exercícios 1. Escreva um programa que crie uma lista de acordo com elementos dados

Exercícios 1. Escreva um programa que crie uma lista de acordo com elementos dados pelo usuário. O programa deve permitir que ao usuário inserir, buscar ou remover elementos da lista.