Algoritmos e Estruturas de Dados. Lição n.º 4 Pilhas
|
|
- Betty Stachinski Raminhos
- 7 Há anos
- Visualizações:
Transcrição
1 Algoritmos e Estruturas de Dados Lição n.º 4 Pilhas
2 Pilhas Implementação com arrays redimensionáveis. Implementação com listas ligadas. Aplicação: avaliação de expressões aritméticas usando o algoritmo da pilha dupla, de Dijkstra Algoritmos e Estruturas de Dados 2
3 Pilhas As pilhas chamam-se pilhas porque funcionam como pilhas...; pilhas de livros, de pratos, de papéis, não pilhas no sentido de baterias elétricas! A ideia é que o elemento que sai é o último que entrou. Dizemos que as pilhas são coleções LIFO: last in first out Algoritmos e Estruturas de Dados 3
4 API da pilha Já sabemos: public class Stack<T> implements Iterable<T> public Stack() public void push(t x) public boolean isempty() public int size() public T pop() public Iterator<T> iterator() Comparando com Bag<T>, temos push em vez de add, temos pop e o iterador emitirá os elementos por ordem inversa de entrada na pilha (os que entraram mais recentemente surgem primeiro) Algoritmos e Estruturas de Dados 4
5 Implementação com arrays redimensionáveis É análoga à da classe Bag<T>: public class Stack<T> implements Iterable<T> private T[] items; private int size; public Stack() private void resize(int capacity) public void push(t x) if (size == items.length) resize(2 * items.length); items[size++] = x; Se o array cresce quando está cheio, será que deve encolher quando fica relativamente vazio? Algoritmos e Estruturas de Dados 5
6 Encolhendo no pop A estratégia será encolher para metade quando o tamanho estiver a 25% da capacidade: public class Stack<T> implements Iterable<T> public T pop() T result = items[--size]; items[size] = null; if (size > 0 && size == items.length / 4) resize(items.length / 2); return result; Anula-se o apontador para que não permaneça no array uma referência para o elemento removido, o que atrasaria a garbage collection. Se não anulássemos, teríamos vadiagem (em inglês, loitering): referências no array para valores inúteis. Note bem: não seria sensato encolher para metade quando o array estivesse meio cheio, pois nesse caso ele ficava cheio logo após ter encolhido, e se houvesse um push a seguir, teria de crescer de novo Algoritmos e Estruturas de Dados 6
7 Iterador reverso Nas pilhas, queremos iterar os elementos de maneira a ver primeiro os que entraram na pilha mais recentemente: private class StackIterator implements Iterator<T> private int i = size; public boolean hasnext() return i > 0; public T next() return items[--i]; public Iterator<T> iterator() return new StackIterator(); Algoritmos e Estruturas de Dados 7
8 Função de teste Eis uma função de teste, que empilha os números lidos e desempilha com -. No fim mostra o tamanho, se é vazia e os elementos, por iteração: private static void teststackinteger() Stack<Integer> s = new Stack<Integer>(); while (!StdIn.isEmpty()) String t = StdIn.readString(); if (!"-".equals(t)) s.push(integer.parseint(t)); else if (!s.isempty()) int x = s.pop(); StdOut.println(x); StdOut.println("size of stack = " + s.size()); StdOut.println("is stack empty? " + s.isempty()); StdOut.print("items:"); for (int x : s) StdOut.print(" " + x); StdOut.println(); Ctrl-D aqui! Algoritmos e Estruturas de Dados 8
9 Implementação com listas ligadas A lista ligada é programada em termos da classe interna Node, a qual detém um campo para o valor e uma referência para o próximo nó: public class StackLists<T> implements Iterable<T> private class Node private T value; private Node next; Ver transparentes de POO, página 13-8 e seguintes. Node(T x, Node z) value = x; next = z; Algoritmos e Estruturas de Dados 9
10 O primeiro nó Na pilha, um dos membros é o primeiro nó da lista; o outro é o tamanho: public class StackLists<T> implements Iterable<T> private Node first; private int size; Omitimos o construtor por defeito, uma vez que os valores iniciais automáticos (null para first e 0 para size) são os que nos interessam Algoritmos e Estruturas de Dados 10
11 Empilhar, desempilhar Para empilhar, criamos um novo nó, que passa a ser o primeiro, ligando-o ao que estava em primeiro antes: public void push(t x) first = new Node(x, first); size++; Para desempilhar, devolvemos o valor do primeiro nó, e avançamos para o seguinte a referência: public T pop() T result = first.value; first = first.next; size--; return result; Algoritmos e Estruturas de Dados 11
12 isempty, size Os métodos isempty e size são muito simples: public boolean isempty() return first == null; public int size() return size; Poderíamos ter omitido o campo size e ter programado a função size contando iterativamente os nós, mas, por decisão de desenho preferimos que função size seja calculada em tempo constante Algoritmos e Estruturas de Dados 12
13 Iterador de listas O cursor é uma referência para o nó corrente: private class StackIterator implements Iterator<T> private Node cursor = first; public boolean hasnext() return cursor!= null; public T next() T result = cursor.value; cursor = cursor.next; return result; Repare que o nó first contém o valor que mais recentemente foi empilhado, de entre todos os que estão na pilha. Tal como na outra implementação, os valores são enumerados pela ordem inversa de entrada na pilha. public Iterator<T> iterator() return new StackIterator(); Algoritmos e Estruturas de Dados 13
14 Avaliação de expressões aritméticas Como exemplo de aplicação das listas, estudemos a avaliação de expressões aritméticas usando o algoritmo da pilha dupla de Dijkstra. As expressões aritmética que nos interessam são completamente parentetizadas, para evitar as questões da precedência dos operadores. Admitiremos os quatro operadores básicos ( +, -, * e / ) e a raiz quadrada ( sqrt ). Os operandos são números decimais, com ou sem parte decimal. Exemplos: ((7*2)+5) ((sqrt(9+16))/3) (((6*3)+(7-3))/2) Algoritmos e Estruturas de Dados 14
15 Pilha dupla de Dijkstra Usamos duas pilhas: uma pilha de cadeias, para os operadores, e uma pilha de números, para os operandos e para os resultados parciais. Varremos a expressão da esquerda para a direita, recolhendo os operadores, os operandos e os parênteses: Cada operador é empilhado na pilha dos operandos. Cada operando é empilhado na pilha dos números. Os parênteses a abrir são ignorados. Ao encontrar um parêntesis a fechar, desempilha-se um operador, depois desempilham-se os operandos (em número apropriado ao operador), aplica-se a operação a esses operando e empilha-se o resultado, na pilha dos números. Depois de o último parêntesis ter sido processado, a pilha dos números terá um único elemento, cujo valor é o valor da expressão Algoritmos e Estruturas de Dados 15
16 Classe DijkstraTwoStack Primeiro as operações de suporte: public final class DijkstraTwoStack private DijkstraTwoStack() private static String[] knownoperators = "+", "-", "*", "/", "sqrt"; private static String[] binaryoperators = "+", "-", "*", "/"; private static String[] unaryoperators = "sqrt"; private static <T> boolean has(t[] a, T x) for (T i : a) if (x.equals(i)) Busca linear. return true; return false; private static boolean isoperator(string s) return has(knownoperators, s); private static boolean isbinaryoperator(string s) return has(binaryoperators, s); private static boolean isnumeric(string s) return Character.isDigit(s.charAt(0)); Algoritmos e Estruturas de Dados 16
17 Avaliação da expressão A seguinte função meramente exprime as regras do algoritmo: private static double evaluationsimple(string[] ss) Stack<String> operators = new Stack<String>(); Stack<Double> values = new Stack<Double>(); for (String s : ss) if ("(".equals(s)) // nothing to do else if (isoperator(s)) operators.push(s); A expressão é representada pelo array dos tóquenes: operandos, operadores e parêntesis. else if (isnumeric(s)) values.push(double.parsedouble(s)); else if (")".equals(s)) String op = operators.pop(); double z; values.push(z); else throw new UnsupportedOperationException(); return values.pop(); Algoritmos e Estruturas de Dados 17
18 Aplicação dos operadores String op = operators.pop(); // StdOut.println(op); double y = values.pop(); // StdOut.println(y); double x = isbinaryoperator(op)? values.pop() : 0.0; // StdOut.println(x); double z; if ("+".equals(op)) z = x + y; else if ("-".equals(op)) z = x - y; else if ("-".equals(op)) z = x + y; else if ("*".equals(op)) z = x * y; else if ("/".equals(op)) z = x / y; else if ("sqrt".equals(op)) z = Math.sqrt(y); Comprido e desinteressante. else throw new UnsupportedOperationException(); // will not happen; values.push(z); Algoritmos e Estruturas de Dados 18
19 Função de teste Para abreviar, determinamos que os tóquenes na expressão vêm separados por espaços. Assim, podemos obter o array de tóquenes diretamente, usando a função split: public static void testevaluationsimple() while (StdIn.hasNextLine()) String line = StdIn.readLine(); double z = evaluationsimple(line.split(" ")); StdOut.println(z); split public String[] split(string regex) Splits this string around matches of the given regular expression. O método split, da classe String, devolve um array de String Algoritmos e Estruturas de Dados 19
20 Experiência Na linha de comando: pedros- imac- 4:bin pedro$ java - cp../stdlib.jar:. DijkstraTwoStack ( ) 9.0 ( sqrt 2 ) ( ( ) / 3 ) 5.0 ( ( ) / ( ) ) 0.25 ( sqrt ( 1 + ( sqrt ( 1 + ( sqrt ( 1 + ( sqrt ( ) ) ) ) ) ) ) ) Próximas tarefas: Evitar ter de separar os tóquenes por espaços. Evitar ter de distinguir os operadores com if-else em cascata Algoritmos e Estruturas de Dados 20
Algoritmos e Estruturas de Dados. Lição n.º 3 Coleções: sacos, pilhas e filas
Algoritmos e Estruturas de Dados Lição n.º 3 Coleções: sacos, pilhas e filas Coleções: sacos, pilhas e filas Especificação das coleções Classes iteráveis Sacos (em inglês bags) Implementação com arrays
Leia maisAlgoritmos e Estruturas de Dados. Lição n.º 3 Coleções: sacos, pilhas e filas
Algoritmos e Estruturas de Dados Lição n.º 3 Coleções: sacos, pilhas e filas Coleções: sacos, pilhas e filas Especificação das coleções Classes iteráveis Sacos (em inglês bags) Implementação com arrays
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 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 maisAlgoritmos 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 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 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 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 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 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 maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
Java Collections Framework (JCF) Uma coleção (collection) é um objeto que agrupa vários elementos. A JCF consiste numa arquitetura para representação e manipulação de coleções. Contém: - Um conjunto de
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 maisDepartamento de Ciência de Computadores Estruturas de Dados (CC114)
1. Cotação de cada pergunta: 1. 32 / 2. 38 / 3. 30 (Total: 100 pontos) 2. Responda às questões de forma clara e concisa nas folhas de exame distribuídas. 1. (Valorização: 32%) Responda às seguintes questões:
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 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 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 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 maisIterator. Professor: Hyggo Almeida
Professor: Hyggo Almeida Utilização de estruturas de dados Vector, ArrayList, HashSet,... Vector collection; public void classexusando(vector col){... ArrayList collection; public void classewusando(arraylist
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 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 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 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 maisOrientação a Objetos AULA 09
Orientação a Objetos AULA 09 Prof. Fabrício Martins Mendonça Conteúdo da Aula ü Coleções ü Coleções lista de objetos ü Coleções conjuntos 2 Coleções Podemos armazenar vários objetos em um array e este
Leia maisEstruturas de Dados Aula 11: TAD Pilha
Estruturas de Dados Aula 11: TAD Pilha Fontes Bibliográficas Livros: Projeto de Algoritmos (Nivio Ziviani): Capítulo 3; Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 10; Estruturas
Leia maisLista Ligada. Nó de Lista Ligada
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:
Leia maisProva de Recuperação PMR3201/PMR2300 1o. semestre 2015 Prof. Thiago Martins
Prova de Recuperação PMR21/PMR2 1o. semestre 2 Prof. Thiago Martins Instruções: screva o nome e o número USP na folha de papel almaço. 1. (2 pontos) Uma pilha é uma estrutura de dados na qual o elemento
Leia maisProgramação com genéricos
Programação com genéricos Laboratório de Programação Pedro Vasconcelos, DCC/FCUP Fevereiro 2015 Tipos genéricos tipos genéricos permitem definir classes ou interfaces que são parameterizadas por outras
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 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 maisExame de Estruturas de Dados 2010.Junho.26
Exame de Estruturas de Dados 2010.Junho.26 Duração: 2:30 horas Valorização: 12 valores. 1. Responda às seguintes questões: a) Faça o estudo da complexidade do seguinte método: 1. void fun2(int n, int v[])
Leia maisEstrutura de Dados II. Prof. Sérgio Portari
Estrutura de Dados II Prof. Sérgio Portari - 2016 Plano de Ensino EMENTA: Filas, Árvores e suas generalizações: árvores binárias, árvores de busca, árvores balanceadas, árvores B e B+. Aplicações de árvores
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 maisESTRUTURAS DE DADOS E ALGORITMOS LISTA LIGADA (ABORDAGEM RECURSIVA)
ESTRUTURAS DE DADOS E ALGORITMOS 1 LISTA LIGADA (ABORDAGEM RECURSIVA) Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande QUESTÕES DE IMPLEMENTAÇÃO Implementacao
Leia maisAlgoritmos e Estruturas de Dados I PILHAS. Prof. Tiago Eugenio de Melo
Algoritmos e Estruturas de Dados I PILHAS Prof. Tiago Eugenio de Melo tmelo@uea.edu.br www.tiagodemelo.info Observações O conteúdo dessa aula é parcialmente proveniente do Capítulo 6 do livro Data Structures
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 maisJAVA. José de Siqueira UFMG - ICEx - DCC
ESTRUTURAS DE DADOS JAVA BÁSICAS EM José de Siqueira UFMG - ICEx - DCC 1 o semestre de 2005 O Tipo Abstrato de Dados Pilha O TAD pilha tem quase as mesmas operações apresentadas anteriormente: 1. empilha(o):
Leia maisParadigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura
Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação
Leia maisPilhas e Filas. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io)
Pilhas e Filas Algoritmos e Estruturas de Dados 2 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Pilhas 2 Pilhas (Stack) Estrutura similar às listas lineares que vimos na última aula [Mais Simples]
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 maisTipos abstratos de dados; pilhas e filas
1 Tipos abstratos de dados; pilhas e filas Além do Sedgewick (sempre leiam o Sedgewick), veja http://www.ime.usp.br/~pf/algoritmos/aulas/pilha.html http://www.ime.usp.br/~pf/algoritmos/aulas/fila.html
Leia maisESTRUTURAS DE DADOS E ALGORITMOS LISTA LIGADA
ESTRUTURAS DE DADOS E ALGORITMOS 1 LISTA LIGADA Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande LISTA LIGADA (LINKED LIST) É uma estrutura de dados em que
Leia maisDepartamento de Ciência de Computadores Estruturas de Dados (CC114)
1. Cotação de cada pergunta: 1. 32 / 2. 36 / 3. 32 (Total: 100 pontos) 2. Responda às questões de forma clara e concisa nas folhas de exame distribuídas. 1. (Valorização: 32%) Responda às seguintes questões:
Leia maisINF1007 Programação 2 9 Pilhas. (c) Dept. Informática - PUC-Rio 1
INF1007 Programação 2 9 Pilhas (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Introdução Interface do tipo pilha Exemplo de uso: verificação de expressões Implementação de pilha com lista encadeada
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 maisFabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes
Árvores Fabrício J. Barth BandTec - Faculdade de Tecnologia Bandeirantes Setembro de 2011 Tópicos Introdução Árvores binárias Implementação em Java Ordens de percurso em árvores binárias Altura de uma
Leia maisINF 1007 Programação II
INF 1007 Programação II Aula 13 Pilhas Edirlei Soares de Lima Pilha Uma pilha é uma estrutura de dados dinâmica na qual novos elementos são sempre inseridos no topo da pilha e acessados
Leia maisDepartamento de Ciência de Computadores Estruturas de Dados (CC114)
1. Cotação de cada pergunta: 1. 30 / 2. 40 / 3. 30 (Total: 100 pontos) 2. Responda às questões de forma clara e concisa nas folhas de exame distribuídas. 1. (Valorização: 30%) Responda às seguintes questões:
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
Variáveis e Métodos de Classe Em Java, quer as classes quer as instâncias das classes são objectos. Onde está o estado da classe? Com que operações é manipulado? UBI, Departamento de Informática T04-1
Leia maisTipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Leia maisTipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
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 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 maisListas Ligadas, Pilhas e Filas
Listas Ligadas, Pilhas e Filas Pedro Ribeiro DCC/FCUP 2017/2018 (baseado e/ou inspirado parcialmente nos slides de Luís Lopes e de Fernando Silva) Pedro Ribeiro (DCC/FCUP) Listas Ligadas, Pilhas e Filas
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 maisTabelas de Dispersão. Algoritmos e Estruturas de Dados Verão Cátia Vaz 1
Tabelas de Dispersão Algoritmos e Estruturas de Dados Verão 2012 1 Tabelas de endereçamento directo Endereçamento directo é usado quando o universo de chaves é pequeno e todas as chaves são distintas:
Leia maisListas Ligadas, Pilhas e Filas
Listas Ligadas, Pilhas e Filas Pedro Ribeiro DCC/FCUP 2017/2018 (baseado e/ou inspirado parcialmente nos slides de Luís Lopes e de Fernando Silva) Pedro Ribeiro (DCC/FCUP) Listas Ligadas, Pilhas e Filas
Leia maisInterfaces POO. Prof. Marcio Delamaro
Interfaces POO Prof. Marcio Delamaro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 1/41 O que é interface É um template de classe Outras classes podem seguir esse template Chamamos isso
Leia maisTabelas de Dispersão. Tabela de Dispersão
Tabelas de Dispersão Sumário Definição. Características. Resolução de colisões: dispersão aberta e dispersão fechada. Teste quadrático. Desempenho de tabelas de dispersão. Interface de tabela de dispersão.
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 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 maisEstrutura de dados - Listas Encadeadas
Estrutura de dados - Listas Encadeadas Prof. Leonardo Cabral da Rocha Soares leonardo.soares@newtonpaiva.br Centro Universitário Newton Paiva 25 de abril de 2019 Estrutura de dados - Listas Encadeadas
Leia maisSintaxe da linguagem Java
Sintaxe da linguagem Java (PG) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira (palex@cc.isel.ipl.pt) Classe pública com método main Uma classe pública com nome A tem
Leia maisPCC104 - Projeto e Análise de Algoritmos
PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 31 de outubro de 2017 Marco Antonio
Leia maisIteradores. Iteradores. Isabel Harb Manssour. Roteiro. Coleções
Implementação de Genéricos, Iteradores Isabel Harb Manssour Porto Alegre, maio de 2006 Roteiro Implementação de Genéricos Coleções Conceito de Genérico Implementação Iteradores Conceito Utilização ForEach
Leia maisAnálise de Programação
Análise de Programação Fundamentos da Linguagem de Programação Java Prof. Gilberto B. Oliveira Variáveis Atributos: Variáveis Declaradas fora de um método, sem o modificador static Variáveis membro ou
Leia maisSCC Algoritmos e Estruturas de Dados I
SCC 202 - Algoritmos e Estruturas de Dados I TAD Pilha Sequencial Estática e Encadeada Dinâmica 17 e 19/8/2010 Exercício: Implementação da pilha sequencial e estática Declaração em C escondendo a ED do
Leia maisAlgoritmos II prof. Daniel Oliveira
Algoritmos II prof. Daniel Oliveira Revisar conceitos abordados na disciplina anterior Abordar conceitos vistos com a linguagem C# Variáveis e listas Expressões Estruturas de controle do tipo condicional
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 maisColeções. João Paulo Q. dos Santos
Coleções João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Roteiro Conceitos sobre coleções; Tipos de coleções; Como são classificadas; Exemplos. 04/02/14 2 Coleções Classes e interfaces do pacote java.util
Leia maisRESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:
RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em: http://www.oxnar.com.br/aulas/java ATIVIDADE ELABORAR O PROGRAMA DE CÁLCULOS DE ÁREAS USANDO
Leia maisTipos de Dados Abstratos
Tipos de Dados Abstratos Algoritmos e Estruturas de Dados Verão 2012 1 Tipos Abstratos Um tipo abstrato é: um tipo genérico de dados, dos quais não se conhece os valores uma interface que define os acessos
Leia maisEscreva em Java a classe NumeroComplexo que represente um número complexo. A classe deverá ter os seguintes construtores:
Lista 2 1 - Números Complexos Números complexos são os que são escritos da forma: a + b*i onde a é a parte real e b a parte imaginária. Escreva em Java a classe NumeroComplexo que represente um número
Leia maisPilhas. Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1
Pilhas Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1 Índice Introdução Operações de uma pilha Aplicações TAD da Pilha em C UDESC - Rui J. Tramontin Jr. 2 Introdução Pilha é uma lista na
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 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 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 maisEstruturas de Dados Básicas
Estruturas de Dados Básicas Última alteração: 10 de Outubro de 2006 Transparências elaboradas por Charles Ornelas, Leonardo Rocha, Leonardo Mata e Nivio Ziviani Projeto de Algoritmos Cap.3 Estruturas de
Leia maisPilhas. Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes
Pilhas Fabrício J. Barth BandTec - Faculdade de Tecnologia Bandeirantes Fevereiro de 2011 Tópicos Principais Introdução Interface do tipo pilha Exemplo de uso: verificação de expressões Implementação de
Leia maisGenerics POO. Prof. Marcio Delamaro
Generics POO Prof. Marcio Delamaro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 1/39 O que são Tipos genéricos São uma forma de definir e utilizar classes de forma genérica Dá flexibilidade
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 mais1 Da aula teórica ao Java
Universidade Federal do ABC Bacharelado em Ciência da Computação Processamento da Informação - Prof. Fabrício Olivetti de França Guia de tradução entre Java e outras linguagens 1 Da aula teórica ao Java
Leia maisEstruturas de Dados Básicas
Projeto de Algoritmos Cap.3 Estruturas de Dados Básicas Seção 3.1 1 Listas Lineares Uma das formas mais simples de interligar os elementos de um conjunto. Estruturas de Dados Básicas Estrutura em que as
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 maisEstrutura de Dados Listas
Universidade Federal da Paraíba Centro de Informática Departamento de Informática Estrutura de Dados Listas 1 Tiago Maritan tiago@ci.ufpb.br Conteúdos Abordados O Conceito de Listas Listas com Representação
Leia maisPilhas e Filas. Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.2 e 3.3
Pilhas e Filas Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.2 e 3.3 http://www2.dcc.ufmg.br/livros/algoritmos/ PILHAS Pilha É uma lista linear em que todas as inserções, retiradas e, geralmente,
Leia maisProgramação Orientada a Objetos com Java. Prof. Júlio Machado
Programação Orientada a Objetos com Java Prof. Júlio Machado julio.machado@pucrs.br HERANÇA Herança Herança é uma relação de generalização/especialização entre classes A ideia central de herança é que
Leia maisAlgoritmos e Estruturas de Dados. Lição n.º 22 Árvores binárias de busca
Algoritmos e Estruturas de Dados Lição n.º 22 Árvores binárias de busca Árvores binárias de busca Árvores binárias de busca. Árvores equilibradas Outras classes de árvores. 20140521 Algoritmos e Estruturas
Leia maisA classe ArrayList. IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli
A classe ArrayList Java oferece uma classe chamada ArrayList, que permite a criação e manipulação de objetos; Um objeto ArrayList é semelhante a um vetor de objetos, mas oferece inúmeras vantagens em relação
Leia maisTemplates. BCC Programação Orientada a Objectos(POO) Departamento de Computação - UFOP
Templates BCC 221 - Programação Orientada a Objectos(POO) Guillermo Cámara-Chávez Departamento de Computação - UFOP Introdução Os templates ou gabaritos fornecem a base para existência da programação genérica
Leia maisExercício de Estrutura de dados. Java Fila
Exercício de Estrutura de dados Java Fila Obs.: Esse projeto foi um exercício realizado em sala de aula da matéria de Estrutura de dados com o Profº Frederico Augusto Siqueira Gentil Aqui está sendo relatado
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 maisProgramação Orientada a Objetos
Programação Orientada a Objetos Engenharia da Computação Professor: Rosalvo Ferreira de Oliveira Neto Dados Pessoais Rosalvo Ferreira de Oliveira Neto MSc. em ciência da computação (UFPE) rosalvo.oliveira@univasf.edu.br
Leia maisFundamentos da Programação
Fundamentos da Programação Segundo Teste 10 de Janeiro de 2014 09:00 10:30 Nome: Número: Esta prova, individual e sem consulta, tem 8 páginas com 12 perguntas. A cotação de cada pergunta está assinalada
Leia maisIntrodução a JAVA. Variáveis, tipos, expressões, comandos e blocos
+ Introdução a JAVA Variáveis, tipos, expressões, comandos e blocos +Roteiro 2 Variáveis e tipos Operadores aritméticos, lógicos, relacionais e bit-a-bit Atribuição Comandos básicos Ler, Escrever, Condicional,
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 mais2 Vectores de objectos
2 Vectores de objectos Agenda de contactos 3 Objectivo Manipular uma agenda de contactos. Descrição e Funcionalides Cada contacto na agenda caracteriza-se por um nome, um telefone e um e-mail. Na agenda,
Leia maisUniversidade Estadual Paulista Júlio de Mesquita Filho UNESP
Introdução à Computação II AULA 16 BCC Noturno - EMA896115B Prof. Rafael Oliveira olivrap@gmail.com Universidade Estadual Paulista Júlio de Mesquita Filho UNESP Rio Claro 2014 (Sem 2) Estruturas de Dados
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 maisIntrodução a JAVA. Variaveis, tipos, expressões, comandos e blocos
Introdução a JAVA Variaveis, tipos, expressões, comandos e blocos Roteiro Variáveis e tipos Operadores aritméticos, lógicos, relacionais e bit-a-bit Atribuição Comandos básicos Ler, Escrever, Condicional,
Leia mais