Estrutura de Dados - Aula 04 - Listas Estáticas
-
Upload
leinylson-fontinele -
Category
Education
-
view
115 -
download
1
Transcript of Estrutura de Dados - Aula 04 - Listas Estáticas
# Estrutura de Dados #Aula 04 - Listas Estáticas
(Sequencial)
Prof. Leinylson Fontinele Pereira
Na aula anterior...
Aula de Revisão de C
Ponteiros
Funções
etc
17:24 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Introdução
17:24 3 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
O que vamos aprender?
Listas Estáticas Sequencial# Propriedades
# Operações fundamentais
17:24 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Vamos começar?
17:24 5 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
17:24
O que é uma Lista?
Estrutura de Dados: Aula 04 - Listas Estáticas
O que é uma Lista?
17:24
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
Exemplos de Listas
17:24 8 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Lista: exemplos
17:24
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
17:24 10 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Qual propriedade é comum a todas estas listas
17:24 11 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Linearidade
Lista: Definição Formal
17:24
Uma lista L é uma coleção de 𝑛 elementos 𝑥1 , 𝑥2, 𝑥3 … 𝑋𝑛 , para 𝑛 ≥ 0.
Se 𝑛 > 0, então 𝑥1 é o primeiro e 𝑥𝑛 o último elemento.
Para 𝑖 = {1,2,… , 𝑛}, 𝑥𝑖 é precedido por 𝑥𝑖−1 é seguido por 𝑥𝑖+1.
Se 𝑛 é igual a 0, então a lista é vazia.
Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Lista Estática (Consecutiva/Sequencial)
17:24
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
Lista Estática (Consecutiva/Sequencial)
17:24
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
Operações do TAD Lista
17:24 15 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Operações com Listas
17:24
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
Operações com Listas
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Criação de uma Lista
17:24Estrutura 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.
Operações com Listas
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Definindo uma Lista
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Pode-se implementar uma lista de no máximo 𝑀𝐴𝑋 elementos, como um arranjo𝐴[1. .𝑀𝐴𝑋]. Este arranjo tem um atributo 𝑁[𝐴] que retorna o nº de elementos
Para𝑀𝐴𝑋 = 7, temos o seguinte arranjo𝐴:
17:24 21 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Tamanho
Operações: Tamanho da Lista
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
17:24 23 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Como faço para saber se alista esta vazia
Operações: Tamanho da Lista
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
A lista (𝐴) está vazia!
17:24 25 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Inserção
Operações: Inserção
17:24Estrutura 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.
Operações: Inserção
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Operações: Inserção
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Operações: Inserção
17:24Estrutura 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).
17:24 30 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Busca
Operações: Busca
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Operações: Busca
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
17:24 33 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
ElementoEm
Operações: ElementoEm
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Como são áreas contíguas e indexadas, basta retornar o elemento em𝐴[𝑖].
17:24 35 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Remoção
Operações: Remoção
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Podemos remover um elemento em qualquer posição, no início, meio ou fim!
Precisamos manter as propriedades da lista, 𝑥𝑖+1 suceder 𝑥𝑖 .
Operações: Remoção
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Para remover um elemento com um dado índice 𝑖, movo os elementos de𝐴[𝑖 + 1. . 𝑛] para𝐴[𝑖. . 𝑛].
Operações: Remoção
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Concluindo...
17:24 39 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Lista Estática Sequencial
17:24
Vantagens: Acesso direto indexado a qualquer elemento da lista Tempo constante para acessar o elemento 𝑖 dependerá
somente do índice.
Desvantagem: Movimentação quando eliminado/inserido elemento Definição prévia do tamanho máximo
Quando usar: Listas pequenas Inserção/remoção no fim da lista Tamanho máximo bem definido A busca é a operação mais frequente
Estrutura de Dados: Aula 04 - Lista Estática Sequencial
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.
17:24 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Material: https://sites.google.com/site/leinylsonuespi
17:24
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
Na próxima aula veremos...
Listas Estáticas Sequenciais# Prática de laboratório
17:24 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Prática
17:24 45 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/
Lista Estática Sequencial
17:24Estrutura 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
Lista Estática Sequencial
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
ListaSequencial.c
O tipo de dados lista
Implementar as suas funções
17:24 48 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Definindo a Lista
Definindo a Lista
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
17:24 50 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Criando a Lista
Criando a Lista
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Criando a Lista
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
17:24 53 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Destruindo a Lista
Destruindo a Lista
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
17:24 55 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Obtendo o Tamanho
Obtendo o Tamanho da Lista
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Obtendo o Tamanho da Lista
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
17:24 58 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Lista Cheia?
Verificando se a Lista está Cheia
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Verificando se a Lista está Cheia
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
17:24 61 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Lista Vazia?
Verificando se a Lista está Vazia
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Verificando se a Lista está Vazia
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
17:24 64 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Inserção na Lista
Lista Estática Sequencial
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Início ->
Fim ->
Meio ->
Inserindo numa Lista Vazia
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Inserindo numa Lista Vazia
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
17:24 68 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Inserindo no Final
Inserindo Elementos no Final da Lista
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Inserindo Elementos no Final da Lista
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
17:24 71 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Inserindo no Início
Inserindo Elementos no Início da Lista
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Inserindo Elementos no Início da Lista
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
17:24 74 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Inserindo no Meio
Inserindo Elementos de Forma Ordenada da Lista
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Inserindo Elementos de Forma Ordenada da Lista
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
17:24 77 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Remoção na Lista
Removendo de uma Lista Vazia
17:24Estrutura 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!!
17:24 79 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Removendo do Final
Removendo Elementos do Final da Lista
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Removendo Elementos do Final da Lista
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
17:24 82 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Removendo do Início
Removendo Elementos do Início da Lista
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Removendo Elementos do Início da Lista
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
17:24 85 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Removendo do Meio
Removendo Elementos do Meio da Lista
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
17:24 87 Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Realizando Consulta na Lista Estática
Realizando Consulta na Lista Estática
17:24Estrutura 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
Consulta pela Posição
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial
Consulta pelo Conteúdo
17:24Estrutura de Dados: Aula 04 - Lista Estática Sequencial