Pilhas e Filas. Conteúdo. FEUP/LEEC Algoritmos e Estruturas de Dados 2001/2002. João Canas Ferreira
|
|
- Benedicto Molinari César
- 7 Há anos
- Visualizações:
Transcrição
1 FEUP/LEEC Algoritmos e Estruturas de Dados 00/00 Pilhas e Filas João Canas Ferreira FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # Conteúdo. Pilhas (a) Implementação baseada em listas (b) Implementação baseada em vectores. Filas (a) Implementação baseada em listas (b) Implementação baseada em vectores. Aplicações de pilhas (a) Cálculo de expressões RPN (b) Conversão de expressões infixas para RPN. Aplicação de filas (a) Percurso mais curto num labirinto FEUP/LEEC,AED,00/00, v0. Pilhas e Filas #
2 Pilhas Pilha Estrutura de dados em que a inserção e a remoção de elementos de uma sequência se faz pela mesma extremidade, geralmente designada por topo da pilha. Uma pilha pode ser considerada como uma restrição de lista. Visto que se trata de uma estrutura de dados mais simples que a lista, é possível obter implementações mais eficazes. O conceito de iterador não se aplica a esta estrutura de dados. LIFO = Last-in First-out FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # Operações com pilhas FEUP/LEEC,AED,00/00, v0. Pilhas e Filas #
3 Pilha Implementação baseada em listas template <class T> class LStack public: LStack(); LStack(const LStack &stk); ~LStack(); bool isempty() const; bool isfull() const; const T & top() const; void makeempty(); void pop(); void push(const T &x); T topandpop(); const LStack & operator=(const LStack &stk); ///... FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # Classe LStack Secção privada template <class T> class LStack //... private: class ListNode // classe privada public: T element; ListNode *next; ; ListNode(const T & elem, ListNode *n = 0) : element(elem), next(n) ; ; ListNode *topofstack; FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # 6
4 push() e top() template <class T> void LStack<T>::push(const T &x) topofstack = new ListNode(x, topofstack); template <class T> const T & LStack<T>::top() const if (isempty()) throw Underflow(); return topofstack->element; FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # 7 pop() e topandpop() template <class T> void LStack<T>::pop() if (isempty()) throw Underflow(); ListNode *oldtop = topofstack; topofstack = topofstack->next; delete oldtop; template <class T> T LStack<T>::topAndPop() T topitem = top(); pop(); return topitem; FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # 8
5 Pilhas Implementação baseada em vectores template <class T> class VStack public: explicit VStack(int capacity = 00); bool isempty() const; bool isfull() const; const T & top() const; void makeempty(); void pop(); void push(const T &x); T topandpop(); //... FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # 9 VStack Secção privada template <class T> class VStack //... private: vector<t> thearray; int topofstack; ; Atenção: Não deixar o vector aumentar de tamanho. topofstack = VAZIO topofstack = - FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # 0
6 Classe VStack Implementação template <class T> bool VStack<T>::isFull() const return topofstack == thearray.size() - ; template <class T> void VStack<T>::makeEmpty() topofstack = -; template <class T> void VStack<T>::push(const T &x) if (isfull()) throw Overflow(); thearray[++topofstack] = x; FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # Classe VStack pop() e top() template <class T> const T & VStack<T>::top() const if (isempty()) throw Underflow(); return thearray[topofstack]; template <class T> void VStack<T>::pop() if (isempty()) throw Underflow(); topofstack--; template <class T> T VStack<T>::topAndPop() if (isempty()) throw Underflow(); return thearray[topofstack--]; FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # 6
7 Filas Fila Estrutura de dados em que a inserção e a remoção de elementos de uma sequência se faz por extremidades opostas, geralmente designadas por cabeça e cauda da fila. Uma fila pode ser considerada como uma restrição de lista. Visto que se trata de uma estrutura de dados mais simples que a lista, é possível obter implementações mais eficazes. O conceito de iterador não se aplica a esta estrutura de dados. FIFO = First-in First-out FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # Funcionamento de filas FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # 7
8 Filas Implementação com listas LQueue<char> back front a b c d FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # Classe LQueue secção pública template <class T> class LQueue public: LQueue(); LQueue(const LQueue &stk); ~LQueue(); bool isempty() const; bool isfull() const; const T & getfront() const; void makeempty(); void dequeue(); void enqueue(const T &x); const LQueue & operator=(const LQueue &stk); //... ; FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # 6 8
9 Classe LQueue secção privada template <class T> class LQueue //... private: class ListNode public: T element; ListNode *next; ListNode(const T & elem, ListNode *n = 0) : element(elem), next(n) ; ; ListNode *front, *back; ; FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # 7 Classe LQueue enqueue() e dequeue template <class T> void LQueue<T>::enqueue(const T &x) ListNode *oldback = back; back = new ListNode(x, 0); if (oldback) oldback->next = back; if (!front) front = back; template <class T> void LQueue<T>::dequeue() if (isempty()) throw Underflow(); ListNode *oldfront = front; front = front->next; delete oldfront; if (!front) back = 0; FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # 8 9
10 Filas Implementação com vectores Importante: Evitar deslocar os elementos do vector. tirar a a b c d b c d front back colocar e front back b c d e tirar b c d e front back front back colocar f f c d e tirar c f d e back front back front FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # 9 Classe CQueue secção privada template <class T> class CQueue public: explicit CQueue(int capacity = 00); //... private: vector<t> thearray; int currentsize; int front, back; void increment(int &x); ; O campo currentsize não é estritamente necessário, mas facilita bastante a gestão da estrutura. Nota: Não se permite a extensão do vector. FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # 0 0
11 Classe CQueue enqueue() e dequeue() template <class T>void CQueue<T>::enqueue(const T &x) if (isfull()) throw Overflow(); increment(back); thearray[back] = x; currentsize++; template <class T> void CQueue<T>::increment(int &x) if (++x == thearray.size()) x = 0; template <class T> T CQueue<T>::dequeue() if (isempty()) throw Underflow(); currentsize--; int oldfront = front; increment(front); return thearray[oldfront]; FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # Notação RPN Notação RPN: Expressões aritméticas em que os operadores surgem a seguir aos operandos (notação pós-fixa). RPN=Reverse Polish Notation Notação infixa: Os operadores binários surgem entre os operandos. Notação infixa: Notação RPN: * ( + ) / + * / Vantagens de RPN: Não requer parênteses nem regras de precedência. FEUP/LEEC,AED,00/00, v0. Pilhas e Filas #
12 Avaliação de expressões RPN Exemplo Uma expressão RPN é facilmente avaliada com a ajuda de uma pilha. + * / + * / + * / + * / + * / + * / + * / FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # Avaliação de expressões RPN Algoritmo. Processar sequencialmente os elementos da expressão. Para cada elemento: (a) Se o elemento for um número, colocá-lo na pilha; (b) Se for um operador i. Retirar os dois elementos do topo da pilha; ii. Processar os elementos de acordo com o operador; iii. Colocar o resultado na pilha.. Retirar o (único) elemento da pilha: é o resultado. (Ver tb. secção.. de [DSAA].) FEUP/LEEC,AED,00/00, v0. Pilhas e Filas #
13 Especificação de um programa para avaliar expressões RPN. Ler expressões de cin;. Os elementos da expressão são separados por espaços e terminadas com =;. Escrever os resultados em cout;. Ignorar linhas vazias;. Terminar com fim-de-ficheiro (^D em Unix, ^Z em Windows) FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # Conversão entre notação infixa e RPN A conversão entre notação infixa e RPN também pode ser feita com o recurso a uma pilha. A pilha é usada para guardar os operadores pendentes ; quando surge um operador todos os operadores de maior ou igual precedência são retirados da pilha. Quando surge um ) esvazia-se a pilha até encontrar o primeiro (. Prioridades: ( / * + - FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # 6
14 Exemplo de conversão infixo RPN * ( + ) / ; * ( + ) / ; * ( + ) / ; * ( + ) / ; * ( + ) / ; * ( + ) / ; * ( + ) / ; * ( + ) / ; * ( + ) / ; * ( + ) / ; + + ( ( ( ( * * * * * * / / Saída: + * / = FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # 7 Especificação do programa de conversão. Ler expressões de cin;. Os elementos da expressão são separados por espaços e terminadas com ponto-e-vírgula;. Escrever os resultados em cout, terminados com =;. Ignorar linhas vazias;. Terminar com fim-de-ficheiro (^D em Unix, ^Z em Windows) Os dois programas anteriores podem ser combinados em Unix: # ir postfix * ( + ) ; ^D FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # 8
15 Percurso mais curto Algoritmo de Lee Como encontrar o percurso mais curto entre dois pontos de um labirinto? a a b b FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # 9 Algoritmo de Lee. Numerar todos os vizinhos do ponto inicial com.. Colocar os vizinhos numa fila.. Enquanto a fila não estiver vazia e não se tiver atingido o ponto de destino: (a) Retirar um ponto da fila; (b) Numerar os seus vizinhos livres com o número do ponto acrescido de ; (c) Colocar os novos pontos (vizinhos) na fila. Se a fila estiver vazia e não se tiver atingido o ponto de destino, não existe percurso. Caso contrário, escrever o percurso em cout. FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # 0
16 Especificação do labirinto (,) (0,) FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # Especificação do programa. Ler um ficheiro com: dimensão do labirinto; zonas livres e ocupadas; pontos inicial e final.. Fazer verificações de consistência;. Aplicar algoritmo de Lee;. Imprimir percurso em cout. FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # 6
17 Representação interna do labirinto FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # Pontos e cálculo da vizinhança class Ponto public: int linha, coluna; Ponto(int li = 0, int col = 0) : linha(li), coluna(col) ; bool operator==(const Ponto &pt) const return (linha == pt.linha) && (coluna == pt.coluna); ; // Cálculo de vizinhança const int n_viz = ; int delta_linha[n_viz] = 0,, 0, - ; int delta_coluna[n_viz] =, 0, -, 0 ; //... for (int i = 0; i < n_viz; i++) vizinho.linha = corrente.linha + delta_linha[i]; vizinho.coluna = corrente.coluna + delta_coluna[i]; //... FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # 7
18 Determinação do percurso Ponto *percurso = new Ponto [comprimento_percurso]; // refazer o percurso do ponto final para o inicial corrente = fim; for (int j = comprimento_percurso -; j >= 0; j--) percurso[j] = corrente; // encontrar predecessor for (int i = 0; i < n_viz; i++) vizinho.coluna = corrente.coluna + delta_coluna[i]; vizinho.linha = corrente.linha + delta_linha[i]; if (grelha[vizinho.linha][vizinho.coluna] == j + ) break; corrente = vizinho; FEUP/LEEC,AED,00/00, v0. Pilhas e Filas # 8
Algoritmos e Estruturas de Dados 2005/2006
Pilhas e Filas Algoritmos e Estruturas de Dados 005/006 Pilhas Pilha estrutura de dados linear em que a inserção e a remoção de elementos de uma sequência se faz pela mesma extremidade, designada por topo
Leia maisAlgoritmos e Estruturas de Dados
Pilhas e Filas Algoritmos e Estruturas de Dados 009/00 Obs: slides marcados com (*) não foram apresentados na aula teórica, mas são parte da bibliografia a estudar! Pilhas Pilha estrutura de dados linear
Leia maisAlgoritmos e Estruturas de Dados 2007/2008
Pilhas e Filas Algoritmos e Estruturas de Dados 007/008 Pilhas Pilha estrutura de dados linear em que a inserção e a remoção de elementos de uma sequência se faz pela mesma extremidade, designada por topo
Leia maisAlgoritmos e Estruturas de Dados 2005/2006
Filas de prioridade Algoritmos e Estruturas de Dados 2005/2006 Filas de prioridade Uma fila de prioridade permite, pelo menos, duas operações sobre um conjunto de valores comparáveis: inserção de um elemento
Leia maisFilas de prioridade. Algoritmos e Estruturas de Dados AED 2005/2006 AEDA 2009/2010
Filas de prioridade Algoritmos e Estruturas de Dados AED 2005/2006 AEDA 2009/2010 Qual a Utilidade das Filas de Prioridade? Trabalhos maiores devem ser executados no fim (mesmo que não tenha sido o último
Leia maisPilhas Filas e Listas
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,
Leia maisTipo de Dados Abstractos: Pilha (stack)
Tipos de Dados Abstractos Estruturas Lineares Pilhas e Filas FEUP - MIEEC Programação - 008/009 Tipo de Dados Abstractos: Pilha (stack) Pilha estrutura de dados linear em que: inserção e a remoção de elementos
Leia maisAlgoritmos e Estruturas de Dados 2009/2010
Listas Algoritmos e Estruturas de Dados 2009/2010 Tipo de Dados Abstracto TDA conjunto de objectos + conjuntos de operações constituem uma abstracção matemática em C++ são implementados por classes; as
Leia maisEstruturas de Dados Pilhas, Filas, Listas
PMR2300 Escola Politécnica da Universidade de São Paulo Introdução Estruturas de dados são objetos que armazenam dados de forma eficiente, oferecendo certos serviços para o usuário (ordenação eficiente
Leia maisAlgoritmos e Estruturas de Dados 2006/2007
Filas de prioridade Algoritmos e Estruturas de Dados 2006/2007 Filas de prioridade Uma fila de prioridade permite, pelo menos, duas operações sobre um conjunto de valores comparáveis: inserção de um elemento
Leia maisTipo de Dados Abstracto
Listas Algoritmos e Estruturas de Dados 2005/2006 Tipo de Dados Abstracto TDA conjunto de objectos + conjuntos de operações constituem uma abstracção matemática em C++ são implementados por classes; as
Leia maisAlgoritmos e Estruturas de Dados 2006/2007
Listas Algoritmos e Estruturas de Dados 2006/2007 Tipo de Dados Abstracto TDA conjunto de objectos + conjuntos de operações constituem uma abstracção matemática em C++ são implementados por classes; as
Leia maisAlgoritmos e Estrutura de Dados Aula 08 Pilhas
Algoritmos e Estrutura de Dados Aula 08 Pilhas Profa. Alana Oliveira e Prof. Davi Viana alanaslz@gmail.com e davi.viana@lsdi.ufma.br Se não entender, pergunte! Dados e Tipos de Dados Um dado é uma informação
Leia maisAula 7 e 8 Filas e suas Aplicações. Prof. Leticia Winkler
Aula 7 e 8 Filas e suas Aplicações Prof. Leticia Winkler 1 Definição de Fila (Queue) São estruturas de dados do tipo FIFO (first-in first-out) - o primeiro elemento a ser inserido, será o primeiro a ser
Leia maisAula 5 e 6 Pilhas e suas Aplicações. prof Leticia Winkler
Aula 5 e 6 Pilhas e suas Aplicações prof Leticia Winkler 1 Definição de Pilha (Stack) São estruturas de dados do tipo LIFO (last-in first-out) - o último elemento a ser inserido, será o primeiro a ser
Leia maisPedro Vasconcelos DCC/FCUP. Programação Funcional 17 a Aula Tipos abstratos
Programação Funcional 17 a Aula Tipos abstratos Pedro Vasconcelos DCC/FCUP 2014 Tipos concretos Até agora definimos um novo tipo de dados começando por listar os seus construtores. data Bool = False True
Leia maisCarlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Pilhas e listas Estruturas de Dados 2 Ordenação (Classificação) Rearranjar um conjunto de objetos Ordem ascendente
Leia maisProgramação Funcional 13 a Aula Tipos abstratos
Programação Funcional 13 a Aula Tipos abstratos Sandra Alves DCC/FCUP 2018/19 Tipos concretos Até agora definimos um novo tipo de dados começando por listar os seus construtores. data Bool = False True
Leia maisProf. Jesus José de Oliveira Neto
Prof. Jesus José de Oliveira Neto É 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
Leia maisÁrvores binárias: implementação
classe BTItrPre : iterador em pré-ordem template class BTItrPre BTItrPre(const BinaryTree & t); void advance(); T & retrieve(); bool isatend() return itrstack.empty(); private: stack
Leia maisCES-11. Pilhas Definição Operações Filas. Operações Deques. Definição. Operações
CES-11 Pilhas Definição Operações Filas Definição Operações Deques Definição Operações PILHAS, FILAS E DEQUES As listas lineares admitem inserção e eliminação em qualquer posição. Pilhas, filas e deques
Leia maisEstruturas de Dados Pilhas, Filas, Listas
Estruturas de Dados Pilhas, Filas, Listas Fabio Gagliardi Cozman Thiago Martins PMR3201 Escola Politécnica da Universidade de São Paulo Estruturas de Dados Pilhas, Filas, Listas Introdução Estruturas de
Leia maisPilha. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Gustavo Batista
Pilha SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências
Leia maisPilhas e Filas. Nádia Félix e Hebert Coelho
Pilhas e Filas Nádia Félix e Hebert Coelho Vários slides foram adaptados de Nina Edelwais e Renata Galante Estrutura de Dados Série de Livros Didáticos - Informática - UFRGS Pilhas e filas Listas lineares
Leia maisEstrutura de Dados: Aula 3 - Linguagem C
Estrutura de Dados: Aula 3 - Linguagem C Uso de Memória Alocação de memória Estática Ocorre em tempo de compilação no momento em que se define uma variável ou estrutura é necessário que se definam seu
Leia mais10.1. Aula 10: Pilhas. O conceito de pilha. Algoritmos de inserção e remoção. Exemplo: Notação Polonesa
10.1 Aula 10: Pilhas O conceito de pilha Algoritmos de inserção e remoção Exemplo: Notação Polonesa 10.2 Pilhas Uso eficiente de listas: inserções e remoções não devem acarretar movimentação de nós. A
Leia maisEstruturas de Dados Encadeadas
CURSO: Ciência da Computação DATA: / / 2016 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 14 APRESENTAÇÃO Na aula de hoje vamos apresentar e discutir conceitos
Leia maisAlocação Seqüencial VAL MAX TOPO
306 Alocação Encadeada Como vimos, uma fila nada mais é do que uma lista com uma disciplina de acesso. Logo, podemos nos utilizar de todos os conceitos vistos em listas para implementarmos filas. Por exemplo,
Leia maisAlgoritmos e Estruturas de Dados 2008/2009. Conjunto de nós e conjunto de arestas que ligam pares de nós
Árvores Algoritmos e Estruturas de Dados 2008/2009 Árvores Conjunto de nós e conjunto de arestas que ligam pares de nós Um nó é a raiz Com excepção da raiz, todo o nó está ligado por uma aresta a 1 e 1
Leia maisProgramação Orientada a Objetos II JAVA Décima Aula. Prof. Rogério Albuquerque de Almeida
Programação Orientada a Objetos II JAVA Décima Aula Prof. Rogério Albuquerque de Almeida 1 Programação Orientada a Objeto II Introdução à Estruturas de Dados Alocação Dinâmica Listas, pilhas e filas Construção
Leia maisPilha. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira
Pilha SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Pilha O que é? Para que serve? 2 Problema: chamada de sub-rotinas Rotina A 1 print A 2 call C 3 call B 4 call D 5 return Rotina B 1 call
Leia maisUNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas
UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra
Leia maisSCC 202 Algoritmos e Estruturas de Dados I. Pilhas (Stacks) (implementação dinâmica)
SCC 202 Algoritmos e Estruturas de Dados I Pilhas (Stacks) (implementação dinâmica) Operações alocação encadeada dinâmica typedef struct elem{ tipo_info info; struct elem *lig; tipo_elem; typedef struct{
Leia maisPilhas. ser acessada somente por uma de suas extremidades. pelo topo. S Uma pilha é uma estrutura linear de dados que pode
Pilhas e Filas Pilhas Uma pilha é uma estrutura linear de dados que pode ser acessada somente por uma de suas extremidades. Uma pilha é uma lista LIFO (do inglês last-in-first out) o último a entrar é
Leia maisPilha. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Gustavo Batista
Pilha SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências
Leia maisESTRUTURA DE DADOS (TCC )
ESTRUTURA DE DADOS (TCC-00.319) Listas lineares Pilhas e Filas Cristina Boeres 2 Manipulando listas lineares! Dependendo do problema a ser resolvidos, existem duas formas especiais (que veremos aqui no
Leia maisParadigmas de Programação
Tipos Abstractos de Dados (ADT) Estruturas construídas para armazenar determinados tipos de dados e que especificam operações que permitem a manipulação desses dados. Estudaremos duas das mais simples
Leia maisEstruturas de Dados. Cristina Gomes Fernandes. Estruturas de Dados p. 1
Estruturas de Dados Cristina Gomes Fernandes Estruturas de Dados p. Pilha Lista linear em que todas as inserções e remoções são feitas numa mesma extremidade (topo). Implementação sequencial: um vetor
Leia maisEstruturas de Dados Filas
Estruturas de Dados Filas Roteiro Introdução Definição de Fila (Queue) Aplicações Operações sobre Fila Implementação de Fila Com vetores Com listas encadeadas Exercícios Introdução Estamos acostumados
Leia maisLista 02: Pilhas & Filas
MAC122 Princípios de Desenvolvimento de Algoritmos DCC IME USP 2º Semestre de 2018 Prof.: Dr. Paulo Miranda pmiranda@vision.ime.usp.br Lista 02: Pilhas & Filas Para as questões envolvendo pilhas, assuma
Leia maisFilas. Nesta aula veremos o ADT fila Em um computador existem muitas filas esperando pela impressora, acesso ao disco ou, num sistema timesharing,
Filas Nesta aula veremos o ADT fila Em um computador existem muitas filas esperando pela impressora, acesso ao disco ou, num sistema timesharing, pelo uso da CPU Algoritmos e Estruturas de Dados I José
Leia maisAvaliação de expressões. Prof: Sérgio Souza Costa
Avaliação de expressões Prof: Sérgio Souza Costa Avaliação de expressões Como efetuar o cálculo de uma expressão em um computador? A / B * (D + C) Avaliação de expressões - Notações Avaliação de expressões
Leia maisEstruturas Compostas Parte II
Estruturas Compostas Parte II Filas e Pilhas Leonardo Tórtoro Pereira Slides fortemente baseados no material do professor Ricardo Farias: http://www.cos.ufrj.br/~rfarias/cos121/ Pilhas Pilhas Também conhecida
Leia mais08/08/2011. Pilha. SCC0202 Algoritmos e Estruturas de Dados I. Prof. Thiago A. S. Pardo. Pilha. O que é? Para que serve?
Pilha SCC0202 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Pilha O que é? Para que serve? 2 1 Rotina A 1 print A 2 call C 3 call B 4 call D Rotina B 1 call C 2 print B 3 call D 4 call C
Leia maisFILAS. As coisas de que uma fila é feita serão chamadas itens. Os itens podem ser números, strings, structs, etc., etc.
KATIA LIMA FILAS RAFAEL DA SILVA REIAS JEFFERSON DA SILVA OLIVEIRA RAFFAELA LEITE SANTANA EXISTEM MUITOS EXEMPLOS DE FILA NO MUNDO REAL: UMA FILA DE BANCO; NO PONTO DE ÔNIBUS; UM GRUPO DE CARROS AGUARDANDO
Leia maisS U M Á R I O. Definição de Estrutura de Dados. Vetores. Listas Ligadas. Pilhas. Filas
ESTRUTURA DE DADOS DEBORAH FERREIRA S U M Á R I O Definição de Estrutura de Dados 1 Vetores 2 Listas Ligadas 4 Pilhas 6 Filas 8 D E F I N I Ç Ã O D E E S T R U T U R A D E D A D O S Estruturas de dados
Leia maisExemplos. Alocação Dinâmica de Pilhas. Pilhas. Pilhas. Implementação Seqüencial X Encadeada. SCE 182 Algoritmos e Estruturas de Dados I
SCE 182 Algoritmos e Estruturas de Dados I Uma pilha é uma lista linear em que a inserção ou eliminação de elementos somente pode ocorrer em uma das extremidades, que é chamada de TOPO da PILHA. D C B
Leia maisPilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I
Pilhas e Filas Encadeadas Algoritmos e Estruturas de Dados I Pilha Lista linear: pilha Represente graficamente o funcionamento da pilha, representando a pilha vazia, a entrada e a saída de elementos Quais
Leia maisREVISÃO DE PILHAS E FILAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
REVISÃO DE PILHAS E FILAS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos PILHAS E FILAS São tipos especiais de listas com disciplina restrita de acesso Acesso Consulta Inserção Remoção Disciplina
Leia maisFICHA 8 PILHAS E FILAS
ESTRUTURAS DE DADOS E ALGORITMOS Departamento de Engenharia Eletrotécnica e de Computadores Faculdade de Ciências e Tecnologia da Universidade de Coimbra FICHA 8 PILHAS E FILAS 8.1. Objetivos Objetivos
Leia maisFilas Exemplo de Aplicação
Filas Exemplo de Aplicação Uma aplicação interessante para filas é a ordenação por distribuição, descrita a seguir. Seja uma lista l composta de n chaves, cada qual representada por um inteiro numa base
Leia maisPilhas. Algoritmos e Estruturas de Dados I. José Augusto Baranauskas Departamento de Física e Matemática FFCLRP-USP
Pilhas Algoritmos e Estruturas de Dados I Nesta aula veremos o ADT pilha Uma pilha é usada em muitas situações tais como avaliação de expressões aritméticas, chamada e retorno de procedimentos e funções
Leia maisCIV 2802 Sistemas Gráficos para Engenharia º Trabalho: Programação básica em C++: Classes
CIV 2802 Sistemas Gráficos para Engenharia 2011.1 4º Trabalho: Programação básica em C++: Classes Implementação de uma calculadora RPN (Reversed Polish Notation) Entrega: 05/abril/2011 Pede-se complementar
Leia maisUniversidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula
Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula Tópicos Introdução Alocação sequencial Listas lineares,
Leia maisÁrvores binárias de pesquisa
Árvores binárias de pesquisa Árvore binária de pesquisa Árvore binária, sem elementos repetidos, que verifica a seguinte propriedade: Para cada nó, todos os valores da sub-árvore esquerda são menores,
Leia maisListas Lineares Ordenadas
Listas Lineares Ordenadas Algoritmos e Estruturas de Dados I Nesta apresentação será apresentado o ADT lista linear ordenada Uma lista linear ordenada, ou simplesmente lista ordenada há uma ordem entre
Leia maisO container vector funciona como um vetor comum, ou seja, os blocos de objetos estão contíguos, permitindo acesso aleatório.
Capítulo 29 class O container vector vai ser apresentado em detalhes. Os demais containers serão apresentados de uma forma simplificada, pois as suas características são semelhantes a vector.
Leia maisProva 2 PMR2300 1o. semestre 2015 Prof. Thiago Martins
Prova PMR00 o. semestre 0 Prof. Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço.. ( pontos) Um heap binário é uma árvore binária completa (todos os níveis exceto o último
Leia maisPedro Vasconcelos DCC/FCUP. Programação Funcional 14 a Aula Tipos abstratos de dados
Programação Funcional 14 a Aula Tipos abstratos de dados Pedro Vasconcelos DCC/FCUP 2012 Tipos concretos de dados Até agora definimos um novo tipo de dados listamos os seus construtores. data Bool = False
Leia maisHeaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35
Heaps Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Introdução Definição de Heap Heap Binária Implementação com vetor Fila de Prioridades
Leia maisEstrutura de Dados: Pilhas. Unidade I:
Estrutura de Dados: Pilhas Unidade I: 0 Unidade: Pilhas 1 Pilhas Já conhecemos na Unidade anterior as Listas Lineares, cujo princípio fundamental é o de ordenar unidimensionalmente seus elementos. Dependendo
Leia maisProva 2 PMR3201 1o. semestre 2015 Prof. Thiago Martins
Prova PMR0 o semestre 0 Prof Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço ( pontos) Uma árvore binária de busca é uma árvore binária na qual para qualquer sub-árvore
Leia maisESTRUTURAS DE DADOS E ALGORITMOS II ANTONIO RAMOS DE CARVALHO JÚNIOR PILHAS
ESTRUTURAS DE DADOS E ALGORITMOS II ANTONIO RAMOS DE CARVALHO JÚNIOR PILHAS TEORIA CONJUNTO ORDENADO DE ITENS NO QUAL NOVOS ITENS PODEM SER INSERIDOS E A PARTIR DO QUAL PODEM SER ELIMINADOS ITENS EM UMA
Leia maisAlgoritmos e Estruturas de Dados 1
1. Algoritmos e Estruturas de Dados 1 Época Normal - 21 Janeiro 2005 public class Data private int dia, mes, ano; public Data(int d, int m, int dia = d; mes = m; ano = a; public Data(int d, int m) this(d,
Leia maisEstruturas de Dados - STL
Estruturas de Dados - STL Baseada na apresentação do prof. João Bittencourt Leandro Tonietto ltonietto@unisinos.br Algoritmos e Estruturas de Dados em C++ Unisinos http://www.inf.unisinos.br/~ltonietto/jed/aed/estruturadados-stl.pdf
Leia maisProva 2 PMR3201 1o. semestre 2016 Prof. Thiago Martins
Prova 2 PMR3201 1o. semestre 2016 Prof. Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço. Os códigos fornecidos na seção Códigos-fonte de apoio podem ser referenciados
Leia maisProgramação Aplicada à Engenharia
Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Programação Aplicada à Engenharia Aula 07: Aritmética e Tomada de decisão Silvio Fernandes 2009.1 1 Operadores Aritméticos Operadores
Leia maisUm exercício (pilhas, BST,...)
No arquivo de uma Biblioteca, existem livros raramente requisitados para empréstimo. Estes livros ficam guardados num arquivo, dentro de caixas numeradas. Cada caixa contém um número máximo de livros,
Leia maisPilhas e Filas. Prof. Walteno Martins Parreira Júnior.
Licenciatura em Computação Algoritmos e Estrutura de Dados Pilhas e Filas Prof. Walteno Martins Parreira Júnior www.waltenomartins.com.br waltenomartins@iftm.edu.br 2016 SUMÁRIO 1. PILHAS... 2 1.1. Introdução...
Leia maisAula 11 Pilha Dinâmica. prof Leticia Winkler
Aula 11 Pilha Dinâmica prof Leticia Winkler 1 Pilha Dinâmica (Dynamic Stack) Pilha implementada através de uma lista linear encadeada. É uma lista linear encadeada em que as operações de inserção e retirada
Leia maisRedefinição de Operadores
Sobrecarga de Operadores em C++ Algoritmos e Estruturas de Dados 2008/2009 Mestrado Integrado em Engenharia Informática e Computação Redefinição de Operadores Quase todos os operadores podem ser redefinidos:
Leia maisAnálise de Algoritmos
Análise de Algoritmos Análise de operações em struturas de dados lineares Profa. Sheila Morais de Almeida DAINF-UTFPR-PG março - 2016 Pilhas e Filas Pilhas e filas são estruturas onde os elementos a serem
Leia maisTipos de Dados Abstractos Estruturas Lineares Listas
Tipos de Dados Abstractos Estruturas Lineares Listas FEUP - MIEEC Programação 2-2008/2009 Tipo de Dados Abstractos (TDA) TDA conjunto de objectos + conjuntos de operações abstracção matemática (dados são
Leia maisAlgoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira.
Algoritmos e Estrutura de Dados II Árvore Prof a Karina Oliveira kkco@dei.unicap.br Introdução Estruturas de dados lineares (pilha, fila) são estruturas que guardam coleções de elementos que são acessados
Leia maisColeção de Dados. Coleções de Dados Classificação 4/1/2011
Coleção de Dados Um conjunto de dados(objetos), organizados(estruturados) de alguma forma. As coleções possuem operações padrão como: adicionar; apagar; atualizar As coleções são divididas em dois grandes
Leia maisPrincípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP
Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Pilhas & Filas Estruturas Lineares Vários problemas frequentemente envolvem a manipulação de sequências ordenadas de objetos.
Leia mais2 Aplicação Pilha: Avaliador de Expressões Simples
1 Objetivos Universidade Federal do Rio Grande do Norte Departamento de Informática e Matemática Aplicada DIMAp Prática de Algoritmos e Estrutura de Dados I DIM0426 Umberto Souza da Costa - 11/09/2007
Leia maisRevisão: Tipo Abstrato de Dados Recursividade
Algoritmos e Estrutura de Dados II Revisão: Tipo Abstrato de Dados Recursividade Prof a Karina Oliveira kkco@dei.unicap.br Introdução Estudo das estruturas de dados envolve dois objetivos complementares:
Leia maisÁrvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira
Árvores SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Listas e árvores Listas lineares Um nó após o outro, adjacentes Nó sucessor e antecessor Diversas aplicações necessitam de estruturas
Leia maisÁrvore binária - definição
Árvore binária - definição árvore binária: conjunto finito de nós Æ (árvore vazia) {raiz, sub-árvore esquerda, sub-árvore direita}, onde sae e sad são conjuntos disjuntos Æ ou raiz /* nó da árvore binária
Leia maisDaikon Invariant Detector. Bárbara dos Santos Flores Fernanda Sant Anna Pimenta
Daikon Invariant Detector Bárbara dos Santos Flores Fernanda Sant Anna Pimenta Introdução Daikon sistema capaz de detectar possíveis invariantes a partir do rastreamento da execução de um programa. Características
Leia maisFilas. Prof. Jesus José de Oliveira Neto
Filas Prof. Jesus José de Oliveira Neto São estruturas 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
Leia maisAlgoritmos e Estruturas de Dados 2005/2006
Tabelas de dispersão Algoritmos e Estruturas de Dados 2005/200 Tabela de dispersão Uma tabela de dispersão é um vector de tamanho fixo em que os elementos são colocados em na posição determinada por uma
Leia maisLista: conceito, representação e algoritmos
Lista: conceito, representação e algoritmos SCC0202 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Problema Imaginem a situação da automação de uma biblioteca Todos os livros devem ser cadastrados
Leia maisEstruturas de Dados. Módulo 11 Pilhas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 11 Pilhas 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)
Leia maisAlgoritmos e Estruturas de Dados II IEC013. TAD, Pilhas e Filas. Prof. César Melo
Algoritmos e Estruturas de Dados II IEC013 TAD, Pilhas e Filas Prof. César Melo TAD: Definição SE programa = definição de um tipo de dados + operação sobre dados desse tipo + restrições sobre dados e operações
Leia maisEstrutura de Dados e Algoritmos e Programação e Computadores II. Aula 4: Listas Estáticas e Dinâmicas
Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 4: Listas Estáticas e Dinâmicas Listas Estáticas: com Vetores Dinâmicas: Listas Ligadas (com ponteiros) Variáveis e Métodos de Controle:
Leia maisTabelas de Dispersão. Estrutura de Dados e Algoritmos
Tabelas de Dispersão Tabelas de Dispersão Sumário Definição. Características. Resolução de colisões: dispersão com listas e dispersão aberta. Teste quadrático. Desempenho de tabelas de dispersão. Interface
Leia maisRecursividade UFOP 1/48
BCC 201 - Introdução à Programação I Recursividade Guillermo Cámara-Chávez UFOP 1/48 Introdução I Recursividade: é um método de programação no qual uma função pode chamar a si mesma Muitas estruturas têm
Leia mais4. Listas, Pilhas, e Filas
4. Listas, Pilhas, e Filas Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 4. Listas, Pilhas, e Filas Estruturas de Dados 1 / 49 Definição de Lista (1) Uma lista é uma sequência finita
Leia mais4. Listas, Pilhas, e Filas
4. Listas, Pilhas, e Filas Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 4. Listas, Pilhas, e Filas Estruturas de Dados 1 / 49 Definição de Lista (1) Uma lista é uma sequência finita
Leia maisBit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256
Bit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256 informações diferentes; Tipos Primitivos são implementados nas
Leia maisSCC Algoritmos e Estruturas de Dados I
SCC 202 - Algoritmos e Estruturas de Dados I TAD Pilha Lembrem...TADs são tipos definidos em termos de seu comportamento e não de sua representação (que pode variar na busca de eficiência) 12/8/2010 Pilha
Leia maisCES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra
CES-11 Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra CES-11 Pilhas Filas Deques Pilhas,,f filas e deques Vimos que as listas lineares admitem inserção e eliminação
Leia maisMestrado Integrado em Engenharia Electrotécnica e de Computadores 2006/2007. Programação 2
Mestrado Integrado em Engenharia Electrotécnica e de Computadores 2006/2007 Programação 2 2º Semestre Trabalho Prático P3B Efectue as tarefas de programação descritas abaixo, usando a linguagem C++ em
Leia maisPCC104 - Projeto e Análise de Algoritmos
PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho (baseado nas notas de aula do prof. Túlio A. M. Toffolo) Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade
Leia maisFilas de prioridade. Marcelo K. Albertini. 3 de Dezembro de 2013
Filas de prioridade Marcelo K. Albertini de Dezembro de / Filas de prioridade O que é uma fila de prioridade? Estrutura de dados que generaliza a ideia de ordenação. Coleções de elementos: inserir e remover
Leia maisÁrvores. Prof. Byron Leite Prof. Tiago Massoni Prof. Fernando Buarque. Engenharia da Computação. Poli - UPE
Árvores Prof. Byron Leite Prof. Tiago Massoni Prof. Fernando Buarque Engenharia da Computação Poli - UPE Motivação Para entradas realmente grandes, o acesso linear de listas é proibitivo Estrutura de dados
Leia maisNotações: in, pré e posfixada
Notações: in, pré e posfixada Como avaliar uma expressão posfixada? A resposta a esta pergunta, vem de uma análise. Estamos tratando de operações binárias. Portanto, devemos avaliar a expressão da esquerda
Leia mais