Pilhas Filas e Listas



Documentos relacionados
Algoritmos e Estruturas de Dados 2005/2006

Estruturas de Dados Pilhas, Filas e Deques

Algoritmos e Estruturas de Dados

Tipo de Dados Abstractos: Pilha (stack)

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra

Estrutura de Dados Pilha (Stack)

ESTRUTURA DE DADOS PILHA

FUNDAÇÃO EDUCACIONAL DE ITUIUTABA

Listas Duplamente Encadeadas

Desafios de Programação TCC Turma A-1

Pedro Vasconcelos DCC/FCUP. Programação Funcional 14 a Aula Tipos abstratos de dados

Estruturas de Dados. Parte dos slides a seguir são adaptações, extensões e traduções para C dos originais:

Lista Ligada. Nó de Lista Ligada

ESTRUTURAS DE DADOS I. Notas de Aula. Prof. Dr. Gilberto Nakamiti

CES-11. Pilhas Definição Operações Filas. Operações Deques. Definição. Operações

Pilhas. Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes

Pilhas e Filas. Conteúdo. FEUP/LEEC Algoritmos e Estruturas de Dados 2001/2002. João Canas Ferreira

Estrutura de Dados: Aula 3 - Linguagem C

Laboratório de Programação. Aula 13 Java 5COP088. Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr barbon@uel.

Árvores. Algoritmos e Estruturas de Dados 2005/2006

Pilhas. Profa Morganna Diniz

Estruturas de Dados Encadeadas

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

A Pilha. Aula 02. DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria

Estruturas Compostas Parte II

S U M Á R I O. Definição de Estrutura de Dados. Vetores. Listas Ligadas. Pilhas. Filas

Aula 7 e 8 Filas e suas Aplicações. Prof. Leticia Winkler

Algoritmos e Estruturas de Dados 1

Programação Orientada a Objetos. Encapsulamento

Estruturas de Dados Aula 11: TAD Pilha 09/05/2011

Pedro Vasconcelos DCC/FCUP. Programação Funcional 17 a Aula Tipos abstratos

Programação Funcional 13 a Aula Tipos abstratos

FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2

4. Listas, Pilhas, e Filas

4. Listas, Pilhas, e Filas

Algoritmos e Estruturas de Dados 2007/2008

Análise de Algoritmos

Pilha. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

5 Caso de estudo O cartão fidelidade

Estruturas de Dados Pilhas, Filas, Listas

Pilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I

SCC 202 Algoritmos e Estruturas de Dados I. Pilhas (Stacks) (implementação dinâmica)

FILAS. As coisas de que uma fila é feita serão chamadas itens. Os itens podem ser números, strings, structs, etc., etc.

Prova 2 PMR3201 1o. semestre 2015 Prof. Thiago Martins

FACULDADE DE TECNOLOGIA SENAC GOIÁS ADELTON HENRIQUE ABISHAI LEMES BORGES NETO HENRIQUE FERREIRA DA SILVA

Universidade Federal de Uberlândia Faculdade de Computação

Filas de prioridade. Algoritmos e Estruturas de Dados AED 2005/2006 AEDA 2009/2010

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

Prova 2 PMR2300 1o. semestre 2015 Prof. Thiago Martins

Algoritmos e Estruturas de Dados I

Métodos Computacionais. Árvores

Pilhas. Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1

ESTRUTURA DE DADOS (TCC )

Coleções Avançadas. Programação Orientada a Objetos Java. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior

Tipos abstratos de dados (TADs)

Filas. A ordem de saída corresponde diretamente à ordem de entrada dos elementos. Fila de caixa bancário

TCC Prof.: Leandro A. F. Fernandes Conteúdo: Listas Lineares

Paradigmas de Programação

-Estrutura linear de acesso seqüencial que ordena seus elementos pela seqüência cronológica de sua entrada;

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas

Introdução à Programação. Interface, Polimorfismo e Dynamic Binding

Estruturas de Dados. Módulo 11 Pilhas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1

Tipo de Dados em Linguagem C

ALGORITMOS E ESTRUTURAS DE DADOS 2011/2012 DICIONÁRIO. Armanda Rodrigues 6 de Outubro 2011

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

PROGRAMAÇÃO II 3. PILHA DINÂMICA

Prof. Jesus José de Oliveira Neto

BSI UFRPE Prof. Gustavo Callou

EAD Fila. - algumas operações realizam-se na frente/cabeça e outras na cauda da Fila

Pilhas. ser acessada somente por uma de suas extremidades. pelo topo. S Uma pilha é uma estrutura linear de dados que pode

Avaliação de expressões. Prof: Sérgio Souza Costa

Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados

Estruturas de Dados Filas

DAS5102 Fundamentos da Estrutura da Informação

08/08/2011. Pilha. SCC0202 Algoritmos e Estruturas de Dados I. Prof. Thiago A. S. Pardo. Pilha. O que é? Para que serve?

2ª Lista de Exercícios

capta a noção elementar de ordemde chegada no processamento de tarefas, além da ordem de chegada é típico atender à prioridade

Estruturas de Dados. Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos

ESTRUTURAS DE DADOS E ALGORITMOS II ANTONIO RAMOS DE CARVALHO JÚNIOR PILHAS

Nível da Arquitetura do Conjunto das Instruções

Pilha. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Gustavo Batista

Árvores Binárias de Pesquisa

Programas operam sobre dados. Dados são relacionados e possuem estrutura. Como representar e manipular dados em um computador

Algoritmos e Estrutura de Dados II

Curso : Tecnologia em Desenvolvimento de Sistemas - AEMS

ESTRUTURAS DE DADOS E ALGORITMOS LISTA LIGADA

Hugo Pedro Proença, 2007

INF 1007 Programação II

Invocação Remota MC704

Aula 5 e 6 Pilhas e suas Aplicações. prof Leticia Winkler

Orientação a Objetos AULA 09

Algoritmos e Estruturas de Dados 2005/2006

Estruturas de Dados Pilhas, Filas, Listas

Programação Orientada a Objetos

INF1007: Programação 2 10 Árvores Binárias. (c) Dept. Informática - PUC-Rio 1

Estrutura de Dados Árvores. Prof. Robinson Alves

EAD Árvore árvore binária

Transcrição:

Pilhas Filas e Listas Sumário Pilha: interface, aplicações e implementação Fila: interface, aplicações e implementação Lista Ligada: interface, aplicações e implementação Pilha Estrutura LIFO (last in, first out) Acesso restrito ao último elemento inserido Operações Inserir: push Remover: pop Pesquisar: top push pop top Cristina Ribeiro Estruturas Lineares 1

Interface // Stack interface // // ******************PUBLIC OPERATIONS********************* // void push( x ) --> Insert x // void pop( ) --> Remove most recently inserted item // Object top( ) --> Return most recently inserted item // Object topandpop( ) --> Return and remove most recent item // boolean isempty( ) --> Return true if empty; else false // void makeempty( ) --> Remove all items // ******************ERRORS******************************** // top, pop, or topandpop on empty stack public interface Stack boolean isempty( ); Object top( ) throws Underflow; void pop( ) throws Underflow; Object topandpop( ) throws Underflow; void push( Object x ); void makeempty( ); 3.8 Class Stack Class Stack em java.util public class java.util.stack extends java.util.vector (I- 3.10) // Constructors public Stack(); 3.8.1 // Methods public boolean empty(); 3.8.2 public Object peek(); 3.8.3 public Object pop(); 3.8.4 public Object push(object item); 3.8.5 public int search(object o); 3.8.6 Não usa interface: define operações da pilha como extensão de vector - permite outras operações (de vector) Cristina Ribeiro Estruturas Lineares 2

Aplicações Compilação de linguagens de programação verificação sintáctica (gramáticas) Pilha é adequada para guardar contextos, mantendo disponível o corrente chamada de procedimentos Chamada: empilha registo de activação Saída: desempilha registo correspondente visibilidade das variáveis decorre da sua posição na pilha avaliação de expressões Pilha mantém operandos, operadores e resultados intermédios expressões: conversão para notação posfixa Pilha mantém operadores até operandos respectivos estarem disponíveis Precedência e associatividade de operadores determina a ordem de saída Stack - análise Operações sobre a pilha devem ser em tempo constante inserção e remoção na pilha só envolvem o topo Implementação em array em geral: tempo constante duplicação do array: gasta tempo da ordem da dimensão do array (para a cópia) amortização: duplicação é O(N) mas o custo é distribuído pelos acessos aos N elementos adicionais obtidos; resultado é acréscimo constante em cada operação Cristina Ribeiro Estruturas Lineares 3

Fila Estrutura FIFO (first in, first out) Inserção na cauda e remoção da cabeça Operações Inserir: enqueue Remover: dequeue Pesquisar: getfront enqueue dequeue getfront Interface // ******************PUBLIC OPERATIONS********************* // void enqueue( x ) --> Insert x // Object getfront( ) --> Return least recently inserted item // Object dequeue( ) --> Return and remove least recent item // boolean isempty( ) --> Return true if empty; else false // void makeempty( ) --> Remove all items // ******************ERRORS******************************** // getfront or dequeue on empty queue public interface Queue boolean isempty( ); Object getfront( ) throws Underflow; Object dequeue( ) throws Underflow; void enqueue( Object X ); void makeempty( ); Cristina Ribeiro Estruturas Lineares 4

Lista Ligada Estrutura com nós que armazenam elementos manter referências para elementos do início e fim da lista Operações Inserir: a seguir à posição corrente Remover: na posição corrente Pesquisar: por conteúdo ou por posição first last Nós: inserção e remoção Nó da lista Class ListNode Object element; ListNode next; Inserir a seguir ao nó corrente tmp = newlistnode(); tmp.element = x; tmp.next = current.next; current.next = tmp; ou current.next = newlistnode(x, current.next); Apagar a seguir ao nó corrente current.next = current.next.next; Cristina Ribeiro Estruturas Lineares 5

Operações na Lista Operações de acesso a elementos da lista requerem referência a nós da lista Necessário garantir que acesso aos nós da lista é seguro Acesso directo aos nós da lista não garante encapsulamento de informação utilizador da estrutura pode passar referência para objecto que não é da lista Lista definida em 2 partes: a lista e o iterador classe da lista: operações são só as permitidas sobre a lista como um todo classe do iterador: suporta operações de acesso a elementos mantém referência para uma lista e posição corrente possível mais do que um iterador sobre a mesma lista Cristina Ribeiro Estruturas Lineares 6