O TAD fila O TAD fila armazena objetos arbitrários

Slides:



Advertisements
Apresentações semelhantes
LISTAS Dilvan Moreira, parcialmente baseado em material do prof. Ricardo Campello.
Advertisements

Aula T-09 – BCC202 Listas (Parte 1) Túlio Toffolo www. decom. ufop
Listas Lineares Estrutura que permite representar um conjunto de dados de forma a preservar a relação de ordem linear. Uma lista linear é composta de nós,
Pilhas e Filas CONTEÚDO (1) Pilhas (2) Filas.
Programação Avançada I
Algoritmos de manipulação de estruturas elementares de dados
Programação II Estruturas de Dados
TAD Deque ATAI.
Principais famílias de algoritmos
ESTRUTURAS DO TIPO FILA
Monitores.
Filas David Menotti Estruturas de Dados I DECOM – UFOP.
David Menotti Estruturas de Dados I DECOM – UFOP
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Aula T12 – BCC202 Listas Túlio Toffolo
Listas lineares Listas Lineares Fila Dupla Pilha Fila Saída restrita
Listas lineares Listas Lineares Fila Dupla Pilha Fila Saída restrita
Árvores Introdução e Aplicações Árvores de Busca Binária Fundamentos
Listas Ligadas – Conceitos Avançados
Erros A Evitar Redundância de Programação public void insere( Priorizavel obj ) throws listaVaziaException; Lançamento de exceções.
AED – Algoritmos e Estruturas de Dados
FILAS (Queues) Estrutura linear de acesso seqüencial que ordena seus elementos pela seqüência cronológica de sua entrada; Estrutura FIFO (First In First.
Prof.: Sergio Pacheco Estruturas de Dados I Prof.: Sergio Pacheco 1.
Robson Godoi / Sandra Siebra
Lista Encadeada Circular Lista Duplamente Encadeada
1 Aula 3 Listas e iteradores (cont.). 2003/2004 Programação Orientada para Objectos 2 ListaDeInt : interface class ListaDeInt { public: typedef int Item;
Aula 2 Listas e iteradores.
Listas Encadeadas.
Algoritmos e Estruturas de Dados
Estruturas de Dados com Jogos
INTELIGÊNCIA ARTIFICIAL
Tipos Abstratos de Dados
TAD Pilha com Alocação Dinâmica de Memória
Implementação de FILAS com Alocação Dinâmica
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação
Tipos Abstratos de Dados
Faculdade de Informática e Tecnologia de Pernambuco ESTRUTURA DE DADOS
Árvores Balanceadas Liliane Rose Benning Salgado.
Listas, Filas e Pilhas Katia Guimarães.
Aula 3 Listas, pilhas, filas.
Estruturas de Dados Aula 9: Listas (parte 1)
Pilhas Profa. Nádia Félix.
Estruturas de Dados Aula 11: TAD Pilha
Listas Simplesmente Encadeadas
Tipos Especiais de Listas
Semáforos J2SE 5.0 Estudo da API e comparação com definição clássica Gustavo Frainer Rômulo Rosinha
Pilhas e Filas usando Alocação Estática e Dinâmica de Memória
2002/2003 Programação Orientada para Objectos 1 Aula 2 Noção de lista e de iterador Operações com listas e iteradores Classes embutidas.
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice.
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Estruturas de Dados I Segundo Período de 2008 Gabarito da Primeira Prova.
Exercícios de Pilha e Fila
Coleções em Java - Parte 2
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
JAVA – Fila ATAI.
Paulo Borba Centro de Informática Universidade Federal de Pernambuco Exceções.
1 TAD Fila com Prioridade -FCP ATAI. 2 TAD Fila com Prioridade (Priority Queue) TAD Fila com Prioridade armazena uma colecção de elementos com prioridade.
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.
Estruturas de Dados Murilo Salgado Razoli.
Estrutura de Dados Aula 3 - Listas
Estrutura de dados Pilhas e filas
Profa. Juliana Mafra ESTRUTURA DE DADOS 30 de Setembro de 2009 Faculdade de Informática e Tecnologia de Pernambuco.
11 Pilhas, Filas e Listas Duplamente Encadeadas Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
Estrutura de Dados Prof. André Cypriano M. Costa
UNIVERSIDADE FEDERAL DE MINAS GERAIS Pilhas e Filas Cristiano Arbex Valle Vinicius Fernandes dos Santos
INE5408 Estruturas de Dados Estruturas de Dados básicas utilizando Vetores - Introdução - Pilhas usando Vetores - Filas usando Vetores.
Transcrição da apresentação:

O TAD fila O TAD fila armazena objetos arbitrários Queues 3/23/2017 10:36 PM O TAD fila O TAD fila armazena objetos arbitrários Inserções e remoções seguem o esquema FIFO Inserções são feitas no fim da fila e remoções no início da fila Operações principais: enfileirar(object): insere um elemento no fim da fila object desenfileirar(): remove e retorna o elemento do início da fila Operações auxiliares: object inicio(): retorna o elemento do início sem removê-lo integer tamanho(): retorna o número de elementos armazenados boolean estaVazia(): indica se há elementos na fila Exceções Tentar remover o ver um elemento do início da fila levanta a exceção EFilaVazia

Aplicações de fila Aplicações diretas Aplicações indiretas Filas de esperas Acesso a recursos compartilhados (impres.) Programação paralela Aplicações indiretas Estrutura de dados auxiliar para algoritmos Componentes de outras estruturas de dados

Configuração “quebrada” Fila baseada em array Use um array de tamanho N de forma circular Duas variáveis mantêm informações do início e fim da fila i índice do elemento do início f índice imediatamente após o último elemento A posição f no array fica vazia Configuração normal Q 1 2 f i Configuração “quebrada” Q 1 2 i f

Operações sobre o TAD fila Usamos o operador módulo (resto da divisão) Algoritmo tamanho() retorne (N - i + f) % N Algoritmo estaVazia() return (i = f) Q 1 2 f i Q 1 2 i f

Operações sobre o TAD fila Algoritmo enfileirar(o) Se (tamanho() = N  1)então throw EFilaCheia senão Q[f]  o f  (f + 1) % N Operação enfileirar levanta uma exceção se o array está cehio Esta exceção é dependente da implementação Q 1 2 f i Q 1 2 i f

Operações sobre o TAD fila Algoritmo desenfileirar() Se (estaVazia()) então throw EFilaVazia senão o  Q[i] i  (i + 1) % N retorne o Operação desenfileirar levanta uma exceção se a fila está vazia Esta exceção é específica do TAD Fila Q 1 2 f i Q 1 2 i f

Fila crescente baseada em array Em uma operação desenfileirar, quando o array está cheio, ao invés de levantar uma exceção, podemos substituir o array por um maior Similar ao que fizemos com Pilhas A operação enfileirar tem tempo de execução amortizado O(n) com estratégia incremental O(1) com estratégia de duplicação

Interface fila em JAVA Interface em JAVA que corresponde ao nosso TAD public interface Fila { public int tamanho(); public boolean estaVazia(); public Object inicio() throws EFilaVazia; public void enfileirar(Object o); public Object desenfileirar() throws EFilaVazia; } Interface em JAVA que corresponde ao nosso TAD Requer a definição da classe EFilaVazia

O TAD deque Operações principais: inserirInicio(object): object removerInicio(): inserirFim(object): object removerFim(): Operações auxiliares object primeiro(): object ultimo(): int tamanho(): boolean estaVazia(): O TAD deque armazena objetos arbitrários Inserções e remoções podem ser feitas no início ou no fim É uma fila de duplo sentido

Lista ligada Uma lista ligada é uma estrutura de dados concreta consistindo de uma sequência de nós Cada nó armazena Um elemento Uma ligação com o próximo nó próximo nó elemento  A B C D

Classe No public class No { private Object elemento; private No proximo; public Object getElemento() { return elemento;} public void setElemento(Object o){ elemento = o; }

Pilhas com listas ligadas Pode-se implementar uma pilha com uma lista ligada O elemento do topo é armazenado no primeiro nó da lista O espaço usado é O(n) e cada operação roda em tempo O(1) nós t  elementos

Filas com listas ligadas Pode-se implementar uma fila com uma lista ligada O elemento do início é o primeiro nó O elemento do fim é o último nó O espaço usado é O(n) e cada operação roda em tempo O(1) f nós i  elementos