Estrutura de Dados II
Introdução à Estrutura de Dados
www.aeciocosta.com.br
[email protected]
Estrutura de Dados
Estrutura de dados é um modo particular de armazenamento e
organização de dados em um computador de modo que
possam ser usados eficientemente.
 Elas normalmente irão crescer, encolher ou sofrer outras
mudanças ao longo do tempo.
Tipos de estrutura de dados
 homogêneos (vetores e matrizes)
Conjuntos de dados formados pelo mesmo tipo de dado
primitivo
 heterogêneos (registros)
Conjuntos de dados formados por tipos de dados primitivos
diferentes (campos do registro) em uma mesma estrutura.
Estrutura de Dados
 Vetores
Estruturas de dados lineares e est á ticas, isto é , s ão
compostas por um número fixo (finito) de elementos de um
determinado tipo de dados.
Vetores: Desvantagens
 Tamanho máximo fixo
 Mesmo vazias ocupam espaço grande de memória
 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
Estrutura de Dados
 Listas
Estrutura de dados linear
Uma das formas mais usadas para se manter dados agrupados é a
lista.
Lista Linear: Agrupa informações referentes a um conjuntos de
elementos.
Operações sobre uma Lista
-Operações Comuns
 Pesquisa, inserção, alteração e remoção de um determinado elemento
da lista.
-Outras Operações




Determinação do número total de elementos de uma lista
Ordenamento da listaUnião de duas ou mais listas
Particionamento da lista e sublistas
etc.
Tipos Especiais de Listas
Fila: Listas lineares onde todas as inserções são realizadas
num determinado extremo da lista e as remoções, no outro
extremo.
Conhecidas também como FIFO(First-In/First-Out)
Tipos Especiais de Listas
Pilhas: Listas lineares onde todas as inser ç õ es e remo ç ões
são realizadas em um único extremo da lista.
Conhecidas também como listas LIFO (Last-In/First-Out)
Tipos Especiais de Listas
Fila Dupla: lista linear onde as inserções e remoções podem
ser feitas em qualquer extremo.
Fila Dupla de Entrada Restrita (FDER): inserção restrita a
um único extremo.
Fila Dupla de Saída Restrita (FDSR): remoção restrita a um
único extremo.
Implementação das Listas
Quanto a alocação de memória, a implementação de listas
pode ser:
Alocação Estática e Dinâmica

Estática
-Quantidade total de mem ó ria utilizada pelos dados de um programa é
previamente conhecida e definida de modo imutável.
-Durante toda a execução a quantidade de memória utilizada não varia.
 Dinâmica
-Durante a execu ç ã o, a quantidade de mem ó ria utilizada pelos dados do
programa é variável.
Alocação Sequencial
Sequencial: elementos da lista são colocados em posições de
memória consecutivas.
-Pontos Fortes
 Fácil endereçamento
 Aritimética simples
 Fácil inserção e supressão de elementos no final da lista
-Pontos Fracos
 Difícil inserção e supressão de elementos no meio da lista
 Difícil movimentação de elementos na lista.
Lista Estática Sequencial
 Implementada usando um vetor
-Quantidade máxima de nós determinada
-Memória alocada em tempo de compilação
Alocação Encadeada
 Listas sequenciais são estruturas de fácil acesso.
-No entanto, o acesso a memória não é ótimo
-Listas muito pequenas sofrem de problemas de re-alocação.
-Listas muito grandes alocam memória desnecessariamente.
 Listas encadeadas fornecem uma maneira de otimizar a
alocação de memória
-Para cada novo elemento é alocado um espaço na memória
Nós de uma lista
 Cada elemento da lista é chamado de um nó da lista
 Um nó é uma estrutura que contém 2 campos:
-A informação
-Um endereço para o próximo elemento da lista
Nós de uma lista
 A lista é representada como um endereço para o primeiro
nó.
-A partir deste nó podemos acessar os demais
Lista Simplesmente Encadeadas
 Dinâmica Encadeada
-Implementada usando objetos (Java), ponteiros (C) ou
registros (Pascal)
-Os espaços de memória para os nós são alocados
dinamicamente, à medida que os novos nós são inseridos
na lista
-E liberados à medida que os nós são excluídos
Lista Simplesmente Encadeadas
 Uma LSE pode ser descrita como sendo um conjunto
dinâmico de nós
Composta por uma estrutura de nós previamente definida
Lista Simplesmente Encadeadas
Exemplo
Operações em Listas






Criação
Inserção
Remoção
Busca
Verificação de Lista Vazia
Liberação de memória
Operações em Listas
 Inserção
Operações em Listas
 Inserção
 Existem diversos tipos de inserção que podem ser feitas em
uma lista.
• Diferente das pilhas e filas, os elementos podem ser
inseridos em qualquer posição da lista.




no início
em posição N
no final
ordenada na lista
Operações em Listas - Inserção
Criando e Inserindo Elementos
Operações em Listas - Inserção
Inserindo Elementos
Operações em Listas
 Inserção no Início
Operações em Listas
 Remoção
Operações em Listas
 Removendo Elemento
Download

2-ED2-Introdução à Estrutura de Dados