Estrutura de Dados
Download
Report
Transcript Estrutura de Dados
Objetivos
Ao concluir esta Disciplina espera-se
que os alunos sejam capazes de:
Distinguir os conceitos de Estrutura e
Dados;
Compreender o que são,
como
funcionam e onde são utilizados os
Arrays, Filas, Listas, Pilhas e Árvores.
Definição de Estrutura de Dados
Uma Estrutura de Dados pode ser definida
como uma forma particular pela qual os
computadores realizam a organização e
manipulação dos dados de forma eficiente.
Definição de Estrutura de Dados
Dado
Ativo a ser manipulado
Estrutura
Elemento estrutural que irá
armazenar as informações
Definição de Estrutura de Dados
Dado
Estrutura
Inteiros(Int)
Array
Textos(String)
Fila
Caracter(char)
Pilha
Ponto flutuante(Double)
Árvovre
Quem é a estrutura e quem são os
Dados?
A B C D
F G H I
L M N O
E
J
p
Arrays(Vetores)
“Um array é uma porção de memória fixa e
sequencial dividida em pedaços idênticos
indexados a partir do 0(zero). Em cada
posição do array, podemos guardar um
aluno.”
Arrays
Listas Encadeadas
As listas ligadas ou encadeadas são conjuntos de
elementos encadeados, onde cada elemento contém
uma ligação com um ou mais elementos da lista.
Listas Lineares
Sequência de itens x1,x2,...,xn
xi é de um determinado tipo
n é o número de elementos da lista
posição relativa dos itens: xi precede xi+1.
Listas Lineares
As listas ligadas ou encadeadas são conjuntos de
elementos encadeados, onde cada elemento contém
uma ligação com um ou mais elementos da lista.
Cada elemento da lista ligada será composto por 2
partes principais: uma parte conterá as informações e a
outra as conexões com outros elementos.
Conteúdo Próx
Cada elemento é formado por um bloco de dados e um
ponteiro para o próximo elemento.
Listas Lineares
Listas Lineares – adicionando célula
Listas Lineares – Removendo célula
Listas Lineares – Exercícios
Descreva como seria o processo para a realização de
cada uma das operações.
conjunto de operações sobre os objetos do tipo Lista:
– Criar lista vazia
– Inserir elemento (no fim)
– Inserir elemento (numa posição específica)
– Remover elemento (de uma posição específica)
– Consultar o i-ésimo elemento
– Pesquisar a ocorrência de um item
– Imprimir todos os elementos da lista
Filas
São listas lineares que adotam a política FIFO (First
In First Out – o primeiro que entra é o primeiro que
sai) para a manipulação de elementos.
As inserções são feitas no final da fila.
As remoções são feitas no início da fila.
A consulta na fila é feita desenfileirando elemento a
elemento até encontrar o elemento desejado ou
chegarao final da fila.
Filas
“Fila é uma estrutura de dados baseada no
princípio FIFO (first in, first out), na qual os
dados que foram inseridos primeiros na fila
serão os primeiros a serem removidos.”
Os primeiros serão os primeiros!
Filas - Aplicações
Alocação de recursos para impressão de documentos
em uma impressora (spooler de impressão).
Atendimento de processos requisitados ao um sistema
operacional.
Ordenação do encaminhamento dos pacotes em um
roteador.
Buffer para gravação de dados em mídia.
Filas - Aplicações
Filas – Operações Básicas
Criação
Inserção de um elemento
Remoção de um elemento
Verificar se a lista está vazia
Liberar a lista
Implementação de Fila com Vetor
Devemos fixar o número máximo de elementos (N).
O vetor é estático e a fila “se movimenta”, permitindo a
manipulação dos dados nos dois extremos
Usamos um mecanismo circular (fila circular) para
aproveitar o máximo do vetor.
Filas com listas encadeadas
Filas - Exercícios
Explique o procedimento para as seguintes atividades
abaixo:
Cria Fila Vazia;
Testa se a fila está vazia;
Testa se a fila está cheia; (quando usar vetores)
Enfileira;
Desenfileira.
Explique como essas operações seriam realizadas com
o uso de vetores.
Pilhas
É uma das estruturas de dados mais simples
A idéia fundamental da pilha é que todo o
acesso a seus elementos é feito através do
seu topo.
Assim, quando um elemento novo é
introduzido na pilha, passa a ser o elemento
do topo, e o único elemento que pode ser
removido da pilha é o do topo.
Pilhas
“Pilha é uma estrutura de dados baseada no
princípio LIFO (last in, first out), na qual os
dados que foram inseridos primeiros na
pilha serão os últimos a serem removidos.”
Os últimos serão os primeiros!
Pilhas – Operações básicas
Existem duas operações básicas que devem
ser implementadas numa pilha:
operação para empilhar (push) um novo
elemento, inserindo-o no topo
operação para desempilhar (pop)
elemento, removendo-o do topo.
um
Operações Push e Pop
A
B
C
Pilhas - Exercícios
Descreva como seriam realizadas as operações abaixo:
Criar uma estrutura de pilha;
Inserir um elemento no topo (push);
Remover o elemento do topo (pop);
Verificar se a pilha está vazia;
Liberar a estrutura de pilha;
Explique como seria implementada uma pilha
utilizando um vetor.
Referências
http://www.caelum.com.br/apostila-java-estrutura-
dados