TAD Deque ATAI.

Slides:



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

TADs Vector, Lista e Sequência
Índice Estrutura de Dados Pilhas 2010 Renan Robson Lima Carneiro
O TAD fila O TAD fila armazena objetos arbitrários
Pilhas e Filas CONTEÚDO (1) Pilhas (2) Filas.
Programação II Estruturas de Dados
Interação entre objetos
1. Classes 2. Membros estáticos 1.1. Palavra chave this
Padrão de Projeto Iterator
Orientação a Objetos: Encapsulamento e Classificação
Universidade Federal do Pará Serviço Público Federal Centro de Ciências Exatas e Naturais Departamento de Informática Abril/2001.
Filas circulares.
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
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
7 Abstração Genérica Unidades genéricas e instanciação.
Lista Encadeada Circular Lista Duplamente Encadeada
Aula 12 Biblioteca padrão do C++ O que é? Composição
Aula 2 Listas e iteradores.
Métodos Programação II
Listas Lineares Estrutura de Dados.
Algoritmos e Estruturas de Dados
Threads: Introdução e Implementação
Professor: Hyggo Almeida
Denise Guliato Faculdade de Computação – UFU
Denise Guliato Faculdade de Computação – UFU
Denise Guliato Faculdade de Computação – UFU
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
Tipos Abstratos de Dados
1 Tipos Abstratos de Dados Pilhas e Filas TPA – 2008 –1 Prof. Mateus Costa.
TAD Pilha com Alocação Dinâmica de Memória
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Denise Guliato Faculdade de Computação – UFU
Tipos Abstratos de Dados
Listas, Filas e Pilhas Katia Guimarães.
Aula 3 Listas, pilhas, filas.
Os métodos equals() e hashCode()
Orientação a Objetos e Java Graduação em Ciência da Computação
Tipos Especiais de Listas
Pilhas Profa. Nádia Félix.
Estruturas de Dados PROFESSOR DIÓGENES FURLAN. Estruturas de Dados (ED) Programas operam sobre dados Dados são relacionados e possuem estrutura Como representar.
Estruturas de Dados Aula 11: TAD Pilha
Listas Simplesmente Encadeadas
Tipos Especiais de Listas
Tratamento de Exceções
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 -
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.
Lista Linear Base para outras estruturas
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Vendo o código como um bolo... com várias camadas! Interface com o usuário (GUI) Comunicação Negócio Dados.
JAVA – Fila ATAI.
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.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
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.
Listas Duplamente Encadeadas Profs Prog2 e Lab2 Unisinos.
USP – ICMC – SSC SSC0300 2º Semestre 2015 Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Eletrônica ] 1 Prof. Dr. Daniel Rodrigo.
Pilha dinâmica Prof.° Jean Daniel Henri Merlin Andreazza
Transcrição da apresentação:

TAD Deque ATAI

ADT Deque Uma extensão da estrutura de dados fila que suporta inserções e remoções no início e no final da fila é chamada de fila de duas cabeças (double-ended queue ou deque) O ADT deque D suporta os seguintes métodos fundamentais: inserePrimeiro(e): Insere um novo elemento e no início de D Entrada: Objecto; Saída: Nenhuma insereUltimo(e): Insere um novo elemento e no final de D removePrimeiro(): Remove e retorna o primeiro elemento de D Entrada: Nenhuma; Saída: Objecto removeUltimo(): Remove e retorna o último elemento de D

ADT Deque Adicionalmente temos os seguintes métodos de suporte: primeiro(): Retorna o primeiro elemento de D Entrada: Nenhuma; Saída: Objecto ultimo(): Retorna o último elemento de D tamanho(): Retorna o número de elementos de D Entrada: Nenhuma; Saída: Inteiro estaVazia(): Determina se D está vazia Entrada: Nenhuma; Saída: Booleano

Exemplo de execução numa deque Operação Saída D inserePrimeiro(3) - (3) inserePrimeiro(5) (5,3) removePrimeiro( ) 5 insereUltimo(7) (3,7) 3 (7) removeUltimo( ) 7 ( ) "erro" estaVazia( ) verdade inserePrimeiro(9) (9) (9,7) tamanho( ) 2 (3,9,7) insereUltimo(5) (3,9,7,5)

Interface Deque public interface Deque { int tamanho(); boolean estaVazia(); void inserePrimeiro(Object novo) throws DequeCheioException; void insereUltimo(Object novo) throws DequeCheioException; Object removeUltimo() throws DequeVazioException; Object removePrimeiro() throws DequeVazioException; Object ultimo() throws DequeVazioException; Object primeiro() throws DequeVazioException; }

Lista duplamente ligada class DLNode { private Object element; private DLNode next, prev; DLNode() { this(null, null, null); } DLNode(Object e, DLNode p, DLNode n) { element = e; next = n; prev = p; } void setElement(Object newElem) { element = newElem; } void setNext(DLNode newNext) { next = newNext; } void setPrev(DLNode newPrev) { prev = newPrev; } Object getElement() { return element; } DLNode getNext() { return next; } DLNode getPrev() { return prev; }

Implementação do Deque com lista dupla public class MyDeque implements Deque { DLNode header, trailer; // sentinels int size; // number of elements public MyDeque() { // initialize an empty deque header = new DLNode(); trailer = new DLNode(); header.setNext(trailer); // make header point to trailer trailer.setPrev(header); // make trailer point to header size = 0; }

Método removeUltimo() public Object removeUltimo() throws DequeEmptyException { if (estaVazia()) throw new DequeEmptyException("Deque is empty."); DLNode last = trailer.getPrev(); Object o = last.getElement(); DLNode secondtolast = last.getPrev(); trailer.setPrev(secondtolast); secondtolast.setNext(trailer); size--; return o; }

Método inserePrimeiro() public void inserePrimeiro (Object o) { DLNode second = header.getNext(); DLNode first = new DLNode(o, header, second); second.setPrev(first); header.setNext(first); size++; }

Implementação de Pilha com Deque - 1 A tabela a seguir mapeia os métodos do ADT pilha para os métodos da deque: Método da Pilha Implementação da Deque tamanho( ) estaVazia ( ) topo( ) ultimo( ) empilha(e) insereUltimo(e) desempilha( ) removeUltimo( )

Implementação de Pilha com Deque - 2 A tabela a seguir mapeia os métodos do ADT pilha para os métodos da deque: Método da Pilha Implementação da Deque tamanho( ) estaVazia ( ) topo( ) primeiro( ) empilha(e) inserePrimeiro(e) desempilha( ) removePrimeiro( )

Implementação de Fila com Deque A tabela a seguir mapeia os métodos do ADT fila para os métodos da deque: Método da Fila Implementação da Deque tamanho( ) estaVazia ( ) inicio( ) primeiro( ) insere(e) insereUltimo(e) remove( ) removePrimeiro( )

Implementação de Pilha com Deque public class DequeStack implements Pilha { private Deque d; public DequeStack() { d = new ImplemDeque(); } public int tamanho() { return d.tamanho(); public boolean estaVazia() { return d.estaVazia(); public void empilha (Object obj) { d.insereUltimo(obj);

Implementação de Pilha com Deque public Object topo() throws PilhaVaziaException { try { return d.ultimo(); } catch (DequeEmptyException ece) { throw new PilhaVaziaException (“Pilha esta vazia!"); public Object desempilha() throws PilhaVaziaException { return d.removeUltimo(); throw new PilhaVaziaException (" Pilha esta vazia!");

Padrão Adapter Interface Pilha Classe DequeStack Classe Deque

Padrão Abstract Factory

Padrão Abstract Factory - CriarFila - CriarPilha Pilha Implem. Estatica Implem. Dinamica PilhaArray PilhaDin Fila FilaArray FilaDin

Padrão Abstract Factory - CriarFila - CriarPilha Pilha Implem. Estatica Implem. Dinamica PilhaArray PilhaDin Fila FilaArray FilaDin