estrutura de dados aula 04 - listas estáticas

89
# Estrutura de Dados # Aula 04 - Listas Estáticas (Sequencial) Prof. Leinylson Fontinele Pereira

Upload: leinylson-fontinele

Post on 12-Apr-2017

262 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Estrutura de Dados Aula 04 - Listas Estáticas

# Estrutura de Dados #Aula 04 - Listas Estáticas

(Sequencial)Prof. Leinylson Fontinele Pereira

Page 2: Estrutura de Dados Aula 04 - Listas Estáticas

Na aula anterior...

Aula de Revisão de C

Ponteiros

Funções

etc

11:32 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 3: Estrutura de Dados Aula 04 - Listas Estáticas

O que vamos aprender?

Listas Estáticas Sequencial# Propriedades

# Operações fundamentais

11:32 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 4: Estrutura de Dados Aula 04 - Listas Estáticas

Vamos começar?

11:32 4 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 5: Estrutura de Dados Aula 04 - Listas Estáticas

11:32

O que é uma Lista?

Estrutura de Dados: Aula 04 - Listas Estáticas

Page 6: Estrutura de Dados Aula 04 - Listas Estáticas

O que é uma Lista?

11:32

Uma lista é uma estrutura que armazena elementos do mesmo tipo de forma alinhada, ou seja, elementos dispostos um após o outro.

Estrutura de Dados: Aula 04 - Listas Estáticas

Page 7: Estrutura de Dados Aula 04 - Listas Estáticas

Exemplos de Listas

11:32 7 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 8: Estrutura de Dados Aula 04 - Listas Estáticas

Lista: exemplos

11:32

Coisas a fazer

Compras

Catálogo telefônico

Informações sobre funcionários da empresa

Notas de alunos

Itens de estoque

Cartas de baralho

etc

Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 9: Estrutura de Dados Aula 04 - Listas Estáticas

11:32 9 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Qual propriedade é comum a todas estas listas

Page 10: Estrutura de Dados Aula 04 - Listas Estáticas

11:32 10 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Linearidade

Page 11: Estrutura de Dados Aula 04 - Listas Estáticas

Lista: Definição Formal

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 12: Estrutura de Dados Aula 04 - Listas Estáticas

Lista Estática (Consecutiva/Sequencial)

11:32

Os nós desta lista são armazenados em endereços sequenciais.

Materializada na forma de um vetor:

Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 13: Estrutura de Dados Aula 04 - Listas Estáticas

Lista Estática (Consecutiva/Sequencial)

11:32

Alocação estática O espaço de memória é alocado no momento da compilação

Exige a definição do número máximo de elementos da Lista

Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 14: Estrutura de Dados Aula 04 - Listas Estáticas

Operações do TAD Lista

11:32 14 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 15: Estrutura de Dados Aula 04 - Listas Estáticas

Operações com Listas

11:32

As propriedades estruturadas da lista, permitem responder a questões como:

Qual é o primeiro elemento da lista?

Qual é o último elemento da lista?

Quais elementos sucedem um determinado elemento?

Quantos elementos existem na lista?

Como inserir um elemento na lista?

Como eliminar um elemento da lista?

Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 16: Estrutura de Dados Aula 04 - Listas Estáticas

Operações com Listas

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 17: Estrutura de Dados Aula 04 - Listas Estáticas

Criação de uma Lista

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

É a primeira operação a ser executada;

Aloca as variáveis necessárias para a definição da lista;

Inicializa as variáveis de controle;

Por fim, as demais operações ficam habilitadas.

Page 18: Estrutura de Dados Aula 04 - Listas Estáticas

Operações com Listas

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 19: Estrutura de Dados Aula 04 - Listas Estáticas

Definindo uma Lista

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 20: Estrutura de Dados Aula 04 - Listas Estáticas

11:32 20 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Tamanho

Page 21: Estrutura de Dados Aula 04 - Listas Estáticas

Operações: Tamanho da Lista

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 22: Estrutura de Dados Aula 04 - Listas Estáticas

11:32 22 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Como faço para saber se alista esta vazia

Page 23: Estrutura de Dados Aula 04 - Listas Estáticas

Operações: Tamanho da Lista

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 24: Estrutura de Dados Aula 04 - Listas Estáticas

11:32 24 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Inserção

Page 25: Estrutura de Dados Aula 04 - Listas Estáticas

Operações: Inserção

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Inserções podem ser:

No início da lista;

No final da lista;

Em alguma posição dentro da lista.

Page 26: Estrutura de Dados Aula 04 - Listas Estáticas

Operações: Inserção

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 27: Estrutura de Dados Aula 04 - Listas Estáticas

Operações: Inserção

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 28: Estrutura de Dados Aula 04 - Listas Estáticas

Operações: Inserção

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Problema:

Nas estruturas contíguas é a necessário definir seu tamanho a priori, podendo levar a:

• um superdimensionamento (desperdiço de memória) ou

• um subdimensionamento (impossibilidade de inserir mais elementos).

Page 29: Estrutura de Dados Aula 04 - Listas Estáticas

11:32 29 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Busca

Page 30: Estrutura de Dados Aula 04 - Listas Estáticas

Operações: Busca

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 31: Estrutura de Dados Aula 04 - Listas Estáticas

Operações: Busca

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 32: Estrutura de Dados Aula 04 - Listas Estáticas

11:32 32 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

ElementoEm

Page 33: Estrutura de Dados Aula 04 - Listas Estáticas

Operações: ElementoEm

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 34: Estrutura de Dados Aula 04 - Listas Estáticas

11:32 34 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Remoção

Page 35: Estrutura de Dados Aula 04 - Listas Estáticas

Operações: Remoção

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 36: Estrutura de Dados Aula 04 - Listas Estáticas

Operações: Remoção

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 37: Estrutura de Dados Aula 04 - Listas Estáticas

Operações: Remoção

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 38: Estrutura de Dados Aula 04 - Listas Estáticas

Concluindo...

11:32 38 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 39: Estrutura de Dados Aula 04 - Listas Estáticas

Lista Estática Sequencial

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 40: Estrutura de Dados Aula 04 - Listas Estáticas

Nesta aula aprendemos... Estrutura de dados lista é uma das mais

importantes e fundamentais.

Conceito chave da lista é a linearidade, podemos falar em primeiro, segundo ....

Pode ser codificada usando estruturas contíguas e encadeadas

Estruturas contíguas o tamanho é dado a priori.

11:32 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 41: Estrutura de Dados Aula 04 - Listas Estáticas

Material: https://sites.google.com/site/leinylsonnassau

11:32

Material baseado nas aulas de:

Estruturas de Dados, Prof.ª Roseli A. F. Romero

Listas: Conceito e estáticas, Prof: Sergio Souza Costa

Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 42: Estrutura de Dados Aula 04 - Listas Estáticas

Na próxima aula veremos...

Listas Estáticas Sequenciais# Prática de laboratório

11:32 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 43: Estrutura de Dados Aula 04 - Listas Estáticas

Alguma Dúvida?

11:32

Até a próxima aula...

[email protected]

Page 44: Estrutura de Dados Aula 04 - Listas Estáticas

Prática

11:32 44 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

As aulas práticas foram baseadas no material de

Linguagem C Descomplicada , Dr. André R. Backes.

Disponível em: https://programacaodescomplicada.wordpress.com/

Page 45: Estrutura de Dados Aula 04 - Listas Estáticas

Lista Estática Sequencial

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

ListaSequencial.h

Os protótipos das funções

O tipo de dado armazenado na lista

O ponteiro lista

Tamanho do vetor usado na lista

Page 46: Estrutura de Dados Aula 04 - Listas Estáticas

Lista Estática Sequencial

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

ListaSequencial.c

O tipo de dados lista

Implementar as suas funções

Page 47: Estrutura de Dados Aula 04 - Listas Estáticas

11:32 47 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Definindo a Lista

Page 48: Estrutura de Dados Aula 04 - Listas Estáticas

Definindo a Lista

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 49: Estrutura de Dados Aula 04 - Listas Estáticas

11:32 49 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Criando a Lista

Page 50: Estrutura de Dados Aula 04 - Listas Estáticas

Criando a Lista

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 51: Estrutura de Dados Aula 04 - Listas Estáticas

Criando a Lista

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 52: Estrutura de Dados Aula 04 - Listas Estáticas

11:32 52 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Destruindo a Lista

Page 53: Estrutura de Dados Aula 04 - Listas Estáticas

Destruindo a Lista

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 54: Estrutura de Dados Aula 04 - Listas Estáticas

11:32 54 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Obtendo o Tamanho

Page 55: Estrutura de Dados Aula 04 - Listas Estáticas

Obtendo o Tamanho da Lista

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 56: Estrutura de Dados Aula 04 - Listas Estáticas

Obtendo o Tamanho da Lista

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 57: Estrutura de Dados Aula 04 - Listas Estáticas

11:32 57 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Lista Cheia?

Page 58: Estrutura de Dados Aula 04 - Listas Estáticas

Verificando se a Lista está Cheia

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 59: Estrutura de Dados Aula 04 - Listas Estáticas

Verificando se a Lista está Cheia

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 60: Estrutura de Dados Aula 04 - Listas Estáticas

11:32 60 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Lista Vazia?

Page 61: Estrutura de Dados Aula 04 - Listas Estáticas

Verificando se a Lista está Vazia

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 62: Estrutura de Dados Aula 04 - Listas Estáticas

Verificando se a Lista está Vazia

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 63: Estrutura de Dados Aula 04 - Listas Estáticas

11:32 63 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Inserção na Lista

Page 64: Estrutura de Dados Aula 04 - Listas Estáticas

Lista Estática Sequencial

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Início ->

Fim ->

Meio ->

Page 65: Estrutura de Dados Aula 04 - Listas Estáticas

Inserindo numa Lista Vazia

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 66: Estrutura de Dados Aula 04 - Listas Estáticas

Inserindo numa Lista Vazia

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 67: Estrutura de Dados Aula 04 - Listas Estáticas

11:32 67 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Inserindo no Final

Page 68: Estrutura de Dados Aula 04 - Listas Estáticas

Inserindo Elementos no Final da Lista

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 69: Estrutura de Dados Aula 04 - Listas Estáticas

Inserindo Elementos no Final da Lista

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 70: Estrutura de Dados Aula 04 - Listas Estáticas

11:32 70 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Inserindo no Início

Page 71: Estrutura de Dados Aula 04 - Listas Estáticas

Inserindo Elementos no Início da Lista

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 72: Estrutura de Dados Aula 04 - Listas Estáticas

Inserindo Elementos no Início da Lista

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 73: Estrutura de Dados Aula 04 - Listas Estáticas

11:32 73 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Inserindo no Meio

Page 74: Estrutura de Dados Aula 04 - Listas Estáticas

Inserindo Elementos de Forma Ordenada da Lista

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 75: Estrutura de Dados Aula 04 - Listas Estáticas

Inserindo Elementos de Forma Ordenada da Lista

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 76: Estrutura de Dados Aula 04 - Listas Estáticas

11:32 76 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Remoção na Lista

Page 77: Estrutura de Dados Aula 04 - Listas Estáticas

Removendo de uma Lista Vazia

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

A remoção sempre remove um elemento específico da lista, o qual pode estar noinício, no meio ou no fim.

Cuidado: Não se pode remover de uma lista vazia!!

Page 78: Estrutura de Dados Aula 04 - Listas Estáticas

11:32 78 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Removendo do Final

Page 79: Estrutura de Dados Aula 04 - Listas Estáticas

Removendo Elementos do Final da Lista

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 80: Estrutura de Dados Aula 04 - Listas Estáticas

Removendo Elementos do Final da Lista

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 81: Estrutura de Dados Aula 04 - Listas Estáticas

11:32 81 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Removendo do Início

Page 82: Estrutura de Dados Aula 04 - Listas Estáticas

Removendo Elementos do Início da Lista

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 83: Estrutura de Dados Aula 04 - Listas Estáticas

Removendo Elementos do Início da Lista

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 84: Estrutura de Dados Aula 04 - Listas Estáticas

11:32 84 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Removendo do Meio

Page 85: Estrutura de Dados Aula 04 - Listas Estáticas

Removendo Elementos do Meio da Lista

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 86: Estrutura de Dados Aula 04 - Listas Estáticas

11:32 86 Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Realizando Consulta na Lista Estática

Page 87: Estrutura de Dados Aula 04 - Listas Estáticas

Realizando Consulta na Lista Estática

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Existem duas maneiras de consulta um elemento de uma lista: Pela posição: acesso direto

Pelo conteúdo: necessidade de busca

Page 88: Estrutura de Dados Aula 04 - Listas Estáticas

Consulta pela Posição

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial

Page 89: Estrutura de Dados Aula 04 - Listas Estáticas

Consulta pelo Conteúdo

11:32Estrutura de Dados: Aula 04 - Lista Estática Sequencial