Algoritmos e estrutura de dados

Tamanho: px
Começar a partir da página:

Download "Algoritmos e estrutura de dados"

Transcrição

1 Algoritmos e estrutura de dados Listas Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional.

2 Conteúdo Listas Listas encadeadas Arranjos dinâmicos Comparações Filas Pilhas Referências

3 Listas

4 Listas Uma Lista é um tipo abstrato de dados usado para armazenar uma sequência de elementos x 0, x 1,..., x n 1 n é o tamanho da lista xi está na posição i (i-ésima posição) xi precede x j para todo i < j < n xi sucede x j para todo n > i > j Uma lista pode aumentar ou diminuir de tamanho Operações comuns em listas Buscar um elemento Consultar um elemento em uma posição Inserir um elemento no início ou no final da lista Inserir um elemento em uma posição Remover um elemento Remover um elemento no início ou no final da lista Remover um elemento de uma posição Etc 4 / 59

5 Listas encadeadas

6 Listas encadeadas Vamos supor que não existisse arranjos em Python Neste caso, como representar uma lista de elementos? 6 / 59

7 Listas encadeadas Vamos supor que não existisse arranjos em Python Neste caso, como representar uma lista de elementos? Criando um encadeamento de instâncias de estruturas 6 / 59

8 Listas encadeadas Considere a seguinte estrutura class No(Struct): Representa um Nó em uma lista encadeada, valor : Qualquer - é o valor armazenado no nó prox : No - é uma refer^encia para o próximo nó def init (self, valor, prox): self.init(valor, prox) Vamos criar um encadeamento de instâncias da classe No Chamamos esta estrutura de lista encadeada 7 / 59

9 Listas encadeadas >>> xs = No(10, None) >>> xs No(10, None) 8 / 59

10 Listas encadeadas >>> xs = No(5, xs) >>> xs No(5, No(10, None)) 9 / 59

11 Listas encadeadas >>> xs = No(19, xs) >>> xs No(19, No(5, No(10, None))) 10 / 59

12 Listas encadeadas Vamos implementar alguns operações de listas usando listas encadeadas Para isto, vamos definir um classe ListaEncadeada class ListaEncadeada(Struct): Representa uma lista encadeada. _primeiro : No - é uma refer^encia para o primeiro nó da lista _ultimo : No - é uma refer^encia para o último nó da lista def init (self): self.init() self._primeiro = None self._ultimo = None O campo ultimo será útil para implementar inserção no final 11 / 59

13 Listas encadeadas Lembre-se que campos com o nome iniciados com são campos internos. Os campos internos não são especificados na criação da instância e não podem ser acessados pelos clientes da classe. No caso da classe ListaEncadeada isto significa que o cliente da classe não pode alterar os campos primeiro e ultimo diretamente, esses campos são alterados através dos métodos (a seguir) definidos na classe 12 / 59

14 Listas encadeadas Representação 13 / 59

15 Listas encadeadas / Inserção Ideia geral da inserção Tratamento especial para inserção no início e fim 14 / 59

16 Listas encadeadas / Inserção no início Inserção no início Criar um nó com o novo elemento na frete do primeiro Atualizar o primeiro para o novo nó Se o último for igual a None, o último passa referenciar o primeiro Análise do tempo de execução A quantidade de operações não depende da quantidade de nós na lista Portanto, o tempo de execução é O(1) 15 / 59

17 Listas encadeadas / Inserção no início def insere_inicio(lista, v): ListaEncadeada, Qualquer -> None Insere o valor v no início da lista. Exemplos: >>> xs = ListaEncadeada() >>> insere_inicio(xs, 3) >>> xs._primeiro No(3, None) >>> xs._ultimo No(3, None) >>> insere_inicio(xs, 1) >>> xs._primeiro No(1, No(3, None)) >>> xs._ultimo No(3, None) >>> insere_inicio(xs, 27) >>> xs._primeiro No(27, No(1, No(3, None))) >>> xs._ultimo No(3, None) 16 / 59

18 Listas encadeadas / Inserção no início def insere_inicio(lista, v):... lista._primeiro = No(v, lista._primeiro) if lista._ultimo == None: lista._ultimo = lista._primeiro 17 / 59

19 Listas encadeadas / Definição de métodos Vamos transformar está função em um método Um método é uma função definida dentro de uma classe 18 / 59

20 Listas encadeadas / Definição de métodos Vamos transformar está função em um método Um método é uma função definida dentro de uma classe Vantagens Os dados da estrutura e as funções que operam nestes dados ficam na mesma unidade sintática (class) É possível ter métodos com o mesmo nome em classes diferentes Polimorfismo 18 / 59

21 Listas encadeadas / Definição de métodos Como fazer a mudança? Colocar a função dentro da classe Modificar o nome do primeiro parâmetro para self (mudar todas as ocorrências do nome dentro da função) Alterar as chamadas de funções do tipo funcao(x,...) para chamadas de métodos x.funcao(...) 19 / 59

22 Listas encadeadas / Definição de métodos Como fazer a mudança? Colocar a função dentro da classe Modificar o nome do primeiro parâmetro para self (mudar todas as ocorrências do nome dentro da função) Alterar as chamadas de funções do tipo funcao(x,...) para chamadas de métodos x.funcao(...) Como escolher entre função ou método? Quando o primeiro argumento for do tipo da classe, definir como método, caso contrário, como uma função Requer experiência Observe com atenção as diferenças nos 2 próximos slides 19 / 59

23 Listas encadeadas / Definição de métodos Definição de insere inicio como função class ListaEncadeada(Struct): # descriç~ao omitida def init (self): # corpo omitido def insere_inicio(lista, v):... >>> xs = ListaEncadeada() >>> insere_inicio(xs, 3) >>> xs._primeiro No(3, None) >>> xs._ultimo No(3, None) # restante dos testes omitidos lista._primeiro = No(v, lista._primeiro) if lista._ultimo == None: lista._ultimo = lista._primeiro 20 / 59

24 Listas encadeadas / Definição de métodos Definição de insere inicio como método class ListaEncadeada(Struct): # descriç~ao omitida def init (self): # corpo omitido def insere_inicio(self, v):... >>> xs = ListaEncadeada() >>> xs.insere_inicio(3) >>> xs._primeiro No(3, None) >>> xs._ultimo No(3, None) # restante dos testes omitidos self._primeiro = No(v, self._primeiro) if self._ultimo == None: self._ultimo = self._primeiro 21 / 59

25 Listas encadeadas / Definição de métodos De agora em diante vamos definir funções como métodos quando isto for adequado 22 / 59

26 Listas encadeadas / Inserção no fim Inserção no fim Criar um nó com o novo elemento Se a lista está vazia, atualizar o primeiro e último para o novo nó Caso contrário colocar o novo nó após o último e atualizar o último Análise do tempo de execução A quantidade de operações não depende da quantidade de nós na lista Portanto, o tempo de execução é O(1) 23 / 59

27 Listas encadeadas / Inserção no fim def insere_fim(self, v): ListaEncadeada, Qualquer -> None Inser v no final da lista Exemplos: >>> xs = ListaEncadeada() >>> xs.insere_fim(3) >>> xs._primeiro No(3, None) >>> xs._ultimo No(3, None) >>> xs.insere_fim(10) >>> xs._primeiro No(3, No(10, None)) >>> xs._ultimo No(10, None) >>> xs.insere_fim(20) >>> xs._primeiro No(3, No(10, No(20, None))) >>> xs._ultimo No(20, None) 24 / 59

28 Listas encadeadas / Inserção no fim def insere_fim(self, v):... p = No(v, None) if self._primeiro == None: self._primeiro = p self._ultimo = p else: self._ultimo.prox = p self._ultimo = p 25 / 59

29 Listas encadeadas / Remoção Ideia geral da remoção Tratamento especial para remoção no início e fim 26 / 59

30 Listas encadeadas / Remoção no início Remoção no início Alterar o primeiro para referenciar o próximo do primeiro Se o novo primeiro é None, isto é, a lista ficou vazia, atualizar o último para None Análise do tempo de execução A quantidade de operações não depende da quantidade de nós na lista Portanto, o tempo de execução é O(1) 27 / 59

31 Listas encadeadas / Remoção no início # Veja os testes completos no arquivo listas.py def remove_inicio(self): ListaEncadeada -> Qualquer Remove o primeiro elemento da lista e devolve o valor removido. Lança uma exceç~ao se a lista estiver vazia. >>> xs = ListaEncadeada() >>> xs.insere_inicio(3) >>> xs.insere_inicio(5) >>> xs.remove_inicio() 5 >>> xs._primeiro No(3, None) >>> xs._ultimo No(3, None) >>> xs.remove_inicio() 3 >>> xs._primeiro == None True >>> xs._ultimo == None True 28 / 59

32 Listas encadeadas / Remoção no início # Veja os testes completos no arquivo listas.py def remove_inicio(self):... if self._primeiro == None: raise Exception( lista vazia ) v = self._primeiro.valor self._primeiro = self._primeiro.prox if self._primeiro == None: self._ultimo = None return v 29 / 59

33 Listas encadeadas / Remoção no fim Remoção no fim Se a lista tem apenas um nó, remover do início Senão procurar o penúltimo nó e remover o próximo (que é o último) Atualizar o último Análise do tempo de execução Para encontrar o penúltimo é necessário visitar n 1 nós Portanto, o tempo de execução é O(n) 30 / 59

34 Listas encadeadas / Remoção no fim # Veja os testes no arquivo listas.py def remove_fim(self): ListaEncadeada -> None Remove o último elemento da lista e devolve o valor removido. Lança uma exceç~ao se a lista estiver vazia. if self._primeiro == None: raise Exception( lista vazia ) if self._primeiro == self._ultimo: return self.remove_inicio() # procura o penúltimo nó p = self._primeiro while p.prox!= self._ultimo: p = p.prox return self._remove_prox(p) 31 / 59

35 Listas encadeadas / Remoção no fim def _remove_prox(self, p): ListaEncadeada, No -> Qualquer Remove o próximo a partir de p e devolve o valor armazenado no n v = p.prox.valor p.prox = p.prox.prox if p.prox == None: self._ultimo = p return v 32 / 59

36 Listas encadeadas / Consulta e alteração por posição Consulta e alteração por posição Iniciar uma referência p para o primeiro elemento Avançar p para o próximo até que chegue na posição especificada ou a lista acabe Se chegou na posição especificada, devolver ou alterar o valor do nó, caso contrário gerar um erro pois a posição está fora da lista Análise do tempo de execução No pior caso p avançara até acabar a lista, ou seja, vai passar por todos os nós Portanto, o tempo de execução é O(n) 33 / 59

37 Listas encadeadas / Consulta e alteração por posição Exemplo inicial >>> xs = ListaEncadeada() >>> xs.insere_fim(4); xs.insere_fim(2); xs.insere_fim(7) >>> xs.consulta(1) 2 >>> xs.consulta(2) 7 >>> xs.altera(1, 10) >>> xs._primeiro No(4, No(10, No(7, None))) Compare com o funcionamento da lista (pré-definida) do Python >>> xs = [4, 2, 7] >>> xs[1] 2 >>> xs[2] 7 >>> xs[1] = 10 >>> xs [4, 10, 7] 34 / 59

38 Listas encadeadas / Consulta e alteração por posição O que é mais conveniente xs[1] ou xs.consulta(1)? xs[1] = 10 ou xs.altera(1, 10)? A forma usada nas listas pré-definidas é mais conveniente Como fazer para tornar a consulta e alteração por posição em listas encadeada tão conveniente quanto das listas pré-definidas? Alterar o nome do método consulta para getitem Alterar o nome do método altera para setitem Estas alterações permite escrever xs[1] ao invés de xs.consulta(1) e xs[1] = 10 ao invés de xs.altera(1, 10) 35 / 59

39 Listas encadeadas / Consulta e alteração por posição Antes >>> xs = ListaEncadeada() >>> xs.insere_fim(4); xs.insere_fim(2); xs.insere_fim(7) >>> xs.consulta(1) 2 >>> xs.consulta(2) 7 >>> xs.altera(1, 10) >>> xs._primeiro No(4, No(10, No(7, None))) Depois >>> xs = ListaEncadeada() >>> xs.insere_fim(4); xs.insere_fim(2); xs.insere_fim(7) >>> xs[1] # equivalente a x. getitem (1) 2 >>> xs[2] 7 >>> xs[1] = 10 # equivalente a x. setitem (1, 10) >>> xs._primeiro No(4, No(10, No(7, None))) 36 / 59

40 Listas encadeadas / Consulta e alteração posição # Veja o código completo no arquivo listas.py def _consulta_pos(self, pos): ListaEncadeada, Natural -> Qualquer Devolve o No na posiç~ao pos. Lança uma exceç~ao se pos >= len(lista) ou pos < 0. p = self._primeiro i = pos while p!= None and i > 0: p = p.prox i = i - 1 if p!= None and i == 0: return p else: raise Exception( índice fora do intervalo ) 37 / 59

41 Listas encadeadas / Consulta e alteração posição # Veja o código completo no arquivo listas.py def getitem (self, pos): p = self._consulta_pos(pos) return p.valor def setitem (self, pos, v): p = self._consulta_pos(pos) p.valor = v 38 / 59

42 Listas encadeadas / Inserção em uma posição Insere em uma posição Se a posição for 0, inserir no início Senão, procurar o nó na posição anterior e insirir o novo valor após este nó Análise do tempo de execução Inserir no início é constante No no pior caso, todos os nós serão visitados se o índice estiver fora da faixa Portanto, o tempo de execução é O(n) 39 / 59

43 Listas encadeadas / Inserção em uma posição # Veja os exemplos no arquivo listas.py def insere(self, pos, v): ListaEncadeada, Natural, Qualquer -> None Insere v na posiç~ao pos. if pos == 0: self.insere_inicio(v) else: # procura o nó na posiç~ao anterior a inserç~ao p = self._consulta_pos(pos - 1) # insere após o nó encontrado self._insere_prox(p, v) 40 / 59

44 Listas encadeadas / Inserção em uma posição # Veja os exemplos no arquivo listas.py def _insere_prox(self, p, v): ListaEncadeada, No, Qualquer -> None Insere o v após o nó p. Exemplos: veja o método insere p.prox = No(v, p.prox) if p.prox.prox == None: self._ultimo = p.prox 41 / 59

45 Listas encadeadas / Remoção em uma posição Remoção em uma posição Se a posição for 0, remover do início Senão, procurar o nó na posição anterior e remover o próximo nó Análise do tempo de execução Remover no início é constante No pior caso, todos os nós serão visitados se o índice estiver fora da faixa Portanto, o tempo de execução é O(n) 42 / 59

46 Listas encadeadas / Remoção em uma posição def remove_pos(self, pos): ListaEncadeada, Natural -> Qualquer >>> xs = ListaEncadeada() >>> xs.insere_fim(5) >>> xs.insere_fim(2) >>> xs.insere_fim(4) >>> xs.insere_fim(8) >>> xs.remove_pos(2) 4 >>> xs.remove_pos(0) 5 >>> xs.remove_pos(1) 8 if pos == 0: return self.remove_inicio() p = self._consulta_pos(pos - 1) return self._remove_prox(p) 43 / 59

47 Listas encadeadas Veja no arquivo listas.py a definição de outras operações Verificar se um elemento está na lista Remover um elemento Contar a quantidade de nós Criar uma representação textual 44 / 59

48 Listas encadeadas Melhorias Manter também uma referência para o nó anterior Permite remover qualquer nó em O(1) (mais o tempo para encontrar o nó) Este tipo de lista é chamada de lista duplamente encadeada Criar um nó especial chamada sentinela que não faz parte da lista mas é o primeiro e último no encadeamento Permite de as operações de inserção e remoção sejam escritas de forma genérica, sem distinguir se a operação é no início ou fim da lista 45 / 59

49 Arranjos dinâmicos

50 Arranjos dinâmicos Os arranjos nas linguagens C e Pascal são estáticos. Eles não podem mudar de tamanho Os arranjos em Python são dinâmicos, eles podem mudar de tamanho Um arranjo dinâmico pode suportar as mesmas operações de uma lista, em outras palavras, um arranjo dinâmico pode implementar o tipo abstrato Lista Como implementar um arranjo dinâmico em termos de um arranjo estático? 47 / 59

51 Arranjos dinâmicos / Inserção Quando um elemento é inserido em uma posição i, todos os elementos x i+1, onde i + 1 < n, devem ser empurrados para a direita Se não houver espaço, um novo arranjo com tamanho maior deve ser criado Os valores do arranjo antigo são copiados para o novo arranjo O arranjo antigo é descartado 48 / 59

52 Arranjos dinâmicos / Remoção Quando um elemento é removido de uma posição i, todos os elementos x i+1, onde i + 1 < n, devem ser empurrados para a esquerda 49 / 59

53 Comparações

54 Comparações Lista Encadeada Arranjo dinâmico Consulta posição O(n) O(1) Inserir no início O(1) O(n) Inserir no fim O(1) O(1) Remover do O(1) O(n) início Remover do fim O(n) O(1) Inserir próximo Tempo de busca + O(1) O(n) 51 / 59

55 Filas

56 Filas Uma fila é como uma lista, mas as inserções e remoções deve seguir uma poĺıtica FIFO - First in, First out O primeiro a entrar é o primeiro a sair A operação de inserção também é conhecida como enfileira A operação de remoção também é conhecida como desenfileira 53 / 59

57 Filas Se existisse uma classe Fila, como gostaríamos que ela funcionasse? >>> f = Fila() >>> f.insere(3) >>> f.insere(5) >>> f.insere(8) >>> f.remove() 3 >>> f.insere(10) >>> f.insere(20) >>> f.remove() 5 >>> f.remove() 8 >>> f.remove() 10 >>> f.remove() 20 Veja o arquivo listas.py 54 / 59

58 Pilhas

59 Pilhas Uma pilha é como uma lista, mas as inserções e remoções deve seguir uma poĺıtica LIFO - Last in, First out O último a entrar é o primeiro a sair A operação de inserção também é conhecida como empilha A operação de remoção também é conhecida como desempilha 56 / 59

60 Pilhas Se existisse uma classe Pilha, como gostaríamos que ela funcionasse? >>> p = Pilha() >>> p.insere(3) >>> p.insere(5) >>> p.insere(8) >>> p.remove() 8 >>> p.insere(10) >>> p.insere(20) >>> p.remove() 20 >>> p.remove() 10 >>> p.remove() 5 >>> p.remove() 3 Veja o arquivo listas.py 57 / 59

61 Referências

62 Referências Projeto de algoritmos / Listas encadeadas. Paulo Feofiloff. Algoritmos: Teoria e prática. 3 a edição. Cormen, Thomas H at all. Capítulo 10. Algoritmos: Teoria e prática. 2 a edição. Cormen, Thomas H at all. Capítulo / 59

aula05 September 6, 2018

aula05 September 6, 2018 aula05 September 6, 018 In [1]: from IPython.display import HTML from IPython.display import Image 1 Filas de Prioridade 1. Estrutura de Dados do tipo pilha e fila são consideradas listas especializadas..

Leia mais

Pilhas Acesso. Pilha. Fila. Listas lineares especiais. Pilhas e Filas. Listas lineares especiais mais usuais. Disciplina restrita

Pilhas Acesso. Pilha. Fila. Listas lineares especiais. Pilhas e Filas. Listas lineares especiais mais usuais. Disciplina restrita Listas lineares especiais s Acesso consulta inserção remoção Disciplina restrita de acesso Disciplina restrita acesso permitido somente em alguns nós Listas lineares especiais mais usuais LIFO Last In

Leia mais

Listas Lineares. Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.1

Listas Lineares. Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.1 Listas Lineares Elerson R. S. Santos elerson@dcc.ufmg.br Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.1 http://www2.dcc.ufmg.br/livros/algoritmos/ Listas Lineares Uma das formas mais simples

Leia mais

Listas, conjuntos e dicionários

Listas, conjuntos e dicionários Listas, conjuntos e dicionários Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual

Leia mais

Estrutura de Dados: Aula 3 - Linguagem C

Estrutura 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 mais

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó

Leia mais

LISTAS LINEARES. Estrutura de Dados

LISTAS LINEARES. Estrutura de Dados LISTAS LINEARES Lista Linear Definição: seqüência de zero ou mais elementos a 1,a 2,...,a n sendo a i elementos de um mesmo tipo n o tamanho da lista linear Propriedade fundamental: os elementos têm relações

Leia mais

Pilhas e Filas. Nádia Félix e Hebert Coelho

Pilhas 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 mais

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

Pilhas. 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 mais

1. Listas sequenciais versus listas ligadas. Lista sequencial

1. Listas sequenciais versus listas ligadas. Lista sequencial Alocação Dinâmica Listas Ligadas 1. Listas sequenciais versus listas ligadas Lista sequencial Uma lista sequencial é um conjunto de elementos contíguos na memória. Um vetor é o melhor exemplo de lista

Leia mais

PCC104 - Projeto e Análise de Algoritmos

PCC104 - 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 mais

# Estrutura de Dados # Aula 06 Pilhas Estáticas. Prof. Leinylson Fontinele Pereira

# Estrutura de Dados # Aula 06 Pilhas Estáticas. Prof. Leinylson Fontinele Pereira # Estrutura de Dados # Aula 06 Pilhas Estáticas Prof. Leinylson Fontinele Pereira Na aula anterior... Filas Estáticas Sequencial # Propriedades # Operações fundamentais Introdução 3 O que vamos aprender?

Leia mais

UNIP - 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 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 mais

Estruturas de Dados Pilhas, Filas, Listas

Estruturas 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 mais

REVISÃ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 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 mais

Estruturas de Dados - Filas

Estruturas de Dados - Filas Estruturas de Dados - Filas Leandro Tonietto ltonietto@unisinos.br Algoritmos e Estruturas de Dados em C++ Unisinos http://www.inf.unisinos.br/~ltonietto/jed/aed/filas.pdf Abr-8 Uma fila (queue) é uma

Leia mais

LP II Estrutura de Dados

LP II Estrutura de Dados LP II Estrutura de Dados Filas Estáticas Sequenciais Prof. José Honorato Ferreira Nunes honoratonunes@softwarelivre.org http://softwarelivre.org/zenorato/honoratonunes Filas - conceitos É uma lista linear

Leia mais

Estruturas de Dados Encadeadas

Estruturas 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 mais

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

S 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 mais

Algoritmos e estrutura de dados

Algoritmos e estrutura de dados Algoritmos e estrutura de dados Introdução Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. Conteúdo A linguagem Python

Leia mais

Estrutura de Dados. Diego Silveira Costa Nascimento

Estrutura de Dados. Diego Silveira Costa Nascimento Estrutura de Dados Diego Silveira Costa Nascimento Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte diego.nascimento@ifrn.edu.br 31 de agosto de 2017 Ementa do Curso 1 Introdução

Leia mais

Aula de hoje. Listas. Sequências especiais. Introdução. Listas. Sequências. SCC Introdução à Programação para Engenharias

Aula de hoje. Listas. Sequências especiais. Introdução. Listas. Sequências. SCC Introdução à Programação para Engenharias SCC 12 - Introdução à Programação para Engenharias Aula de hoje Introdução Sequências Classes e objetos Listas Listas Operações em listas Pilhas e filas Professor: André C. P. L. F. de Carvalho, ICMC-USP

Leia mais

Listas (Parte 1) Túlio Toffolo BCC202 Aula 09 Algoritmos e Estruturas de Dados I

Listas (Parte 1) Túlio Toffolo  BCC202 Aula 09 Algoritmos e Estruturas de Dados I Listas (Parte 1) Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 09 Algoritmos e Estruturas de Dados I Ementa do Curso Tipos Abstratos de Dados / Alocação Dinâmica Análise de Algoritmos

Leia mais

Aula 07: Algoritmos de busca e Listas encadeadas

Aula 07: Algoritmos de busca e Listas encadeadas BC1424 Algoritmos e Estruturas de Dados I Aula 07: Algoritmos de busca e Listas encadeadas Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 1Q-2016 1 Busca de um elemento 2 Exemplo: Busca de um elemento

Leia mais

Implementando subprogramas

Implementando subprogramas Implementando subprogramas Linguagens de Programação Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. http://github.com/malbarbo/na-lp-copl

Leia mais

Fila e Deque. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.

Fila e Deque. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Fila e Deque 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 mais

Estrutura 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 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 mais

Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.

Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Listas Estáticas 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

Leia mais

Prova de Recuperação PMR3201 1o. semestre 2017 Prof. Thiago Martins

Prova de Recuperação PMR3201 1o. semestre 2017 Prof. Thiago Martins Prova de Recuperação PMR3201 1o. semestre 2017 Prof. Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço. Numere cada página. Indique o total de páginas na primeira página.

Leia mais

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Aula 07: Filas

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Aula 07: Filas Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Aula 07: Filas O que é uma fila? 1 4 3 2 Fila 1 2 3 4 O que é uma fila? 1 Fila 1 2 3 4 O que é uma fila? 1 2 Fila 2 3 4 O que é uma fila? 1 3 2

Leia mais

Estrutura de dados - Listas Encadeadas

Estrutura 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 mais

Listas Lineares. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Listas Lineares. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Listas Lineares David Menotti DInf UFPR Listas Lineares Uma das formas mais simples de interligar os elementos de um conjunto. Estrutura em que as operações inserir, retirar e localizar são definidas.

Leia mais

UFSC-CTC-INE INE Estruturas de Dados. Pilhas. Prof. Ronaldo S. Mello 2002/2. Pilha

UFSC-CTC-INE INE Estruturas de Dados. Pilhas. Prof. Ronaldo S. Mello 2002/2. Pilha UFSC-CTC-INE INE5384 - Estruturas de Dados Pilhas Prof. Ronaldo S. Mello 2002/2 Pilha Uma pilha mantém uma seqüência de elementos dispostos um sobre o outro: pilha de livros pilha de caixas pilha de objetos

Leia mais

Estruturas de Dados Aula 11: TAD Pilha

Estruturas 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 mais

Heaps. 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 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 mais

Variáveis e instruções de repetição

Variáveis e instruções de repetição Variáveis e instruções de repetição Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual

Leia mais

ESTRUTURA DE DADOS FILAS SEQUENCIAIS

ESTRUTURA DE DADOS FILAS SEQUENCIAIS ESTRUTURA DE DADOS FILAS SEQUENCIAIS Prof. Dr. Daniel Caetano 2012-2 Objetivos Compreender o que é uma estrutura em fila Compreender sua aplicação Capacitar para implementar filas Atividade Estruturada!

Leia mais

Árvores Binárias de Busca (ABB) 18/11

Árvores Binárias de Busca (ABB) 18/11 Árvores Binárias de Busca (ABB) 18/11 Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguintes propriedade: Para todo nó da árvore, se seu valor é X, então:

Leia mais

Prova Substitutiva PMR3201 1o. semestre 2018 Prof. Thiago Martins

Prova Substitutiva PMR3201 1o. semestre 2018 Prof. Thiago Martins Prova Substitutiva PMR301 1o. semestre 018 Prof. Thiago Martins Instruções Escreva o nome e o número USP na folha de papel almaço. Numere cada página. Indique o total de páginas na primeira página. Os

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) ASN Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Material elaborado com base nos slides do Prof. Reinaldo Fortes (curso

Leia mais

Lista Encadeada (Linked List)

Lista Encadeada (Linked List) Lista Encadeada (Linked List) As listas ou listas encadeadas são a estrutura de dados mais simples concebível excetuando-se naturalmente os arrays. Listas encadeadas nada mais são que uma seqüência de

Leia mais

Implementação de subprogramas

Implementação de subprogramas Implementação de subprogramas Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual

Leia mais

Filas. Prof. Túlio Toffolo BCC202 Aula 12 Algoritmos e Estruturas de Dados I

Filas. Prof. Túlio Toffolo  BCC202 Aula 12 Algoritmos e Estruturas de Dados I Filas Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 12 Algoritmos e Estruturas de Dados I O que é uma fila? 1 4 2 3 Fila 1 2 3 4 TAD Fila Tipo Abstrato de dados com a seguinte característica:

Leia mais

Revisão de TDA, Pilhas e Filas

Revisão de TDA, Pilhas e Filas Revisão de TDA, Pilhas e Filas Professor: Santiago Viertel dcc2sv@joinville.udesc.br Sumário Tipos de Dados Abstratos Pilhas Conceito Pilha Estática Filas Conceito Filas Estáticas (FEMR, FEMI e FEC) Tipos

Leia mais

Dados compostos. Paradigma de Programação Funcional. Marco A L Barbosa

Dados compostos. Paradigma de Programação Funcional. Marco A L Barbosa Dados compostos Paradigma de Programação Funcional Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. Conteúdo Estruturas

Leia mais

Listas Lineares Ordenadas

Listas 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 mais

Árvores Binárias de Busca

Árvores Binárias de Busca 0. Um breve comentário sobre os algoritmos de busca em tabelas De uma maneira geral, realizam-se operações de busca, inserção e remoção de elementos numa tabela. A busca sequencial tradicional é O(N).

Leia mais

Aplicações de listas Outras estruturas

Aplicações de listas Outras estruturas Aplicações de listas Outras estruturas SCC-22 Algoritmos e Estruturas de Dados I Lucas Antiqueira Grandes números 2 Grandes números Problema: lidar com números muito grandes Em C, inteiros (mesmo long

Leia mais

Programação II. Listas Encadeadas (Linked Lists) Bruno Feijó Dept. de Informática, PUC-Rio

Programação II. Listas Encadeadas (Linked Lists) Bruno Feijó Dept. de Informática, PUC-Rio Programação II Listas Encadeadas (Linked Lists) Bruno Feijó Dept. de Informática, PUC-Rio Vetores vs Estruturas Dinâmicas Vetores (arrays): Ocupa um espaço contíguo de memória Permite acesso randômico

Leia mais

Estrutura de Dados. Estrutura de Dados Recursividade. Exemplo: 5! = 5 x 4! 4! = 4 x 3! 3! = 3 X 2! 2! = 2 x 1! 1! = 1 x 0!

Estrutura de Dados. Estrutura de Dados Recursividade. Exemplo: 5! = 5 x 4! 4! = 4 x 3! 3! = 3 X 2! 2! = 2 x 1! 1! = 1 x 0! Rafael D. Ribeiro, M.Sc. rafaeldiasribeiro@gmail.com http://www.rafaeldiasribeiro.com.br Exemplo: 5! = 5 x 4! 4! = 4 x 3! 3! = 3 X 2! 2! = 2 x 1! 1! = 1 x 0! Fatorial de 0 = 1 Recursividade 1 Recursividade

Leia mais

Aplicações de listas e outras estruturas

Aplicações de listas e outras estruturas 19/1/11 Aplicações de listas e outras estruturas SCC- Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Grandes números Problema: lidar com números muito grandes Em C, inteiros (mesmo long int)

Leia mais

Prof. Jesus José de Oliveira Neto

Prof. 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

Aplicações de listas e outras estruturas. SCC-502 Algoritmos e Estruturas de Dados I

Aplicações de listas e outras estruturas. SCC-502 Algoritmos e Estruturas de Dados I Aplicações de listas e outras estruturas SCC-52 Algoritmos e Estruturas de Dados I Grandes números Problema: lidar com números muito grandes Em C, inteiros (mesmo long int) são limitados Como somar números

Leia mais

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Listas e Filas Estruturas de Dados 2 Estrututuras de dados lineares Pilhas (stack) Estrutura de dados onde a inserção

Leia mais

Pilhas 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 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 mais

Capítulo 8: Abstrações de dados

Capítulo 8: Abstrações de dados Capítulo 8: Abstrações de dados Ciência da computação: Uma visão abrangente 11a Edition by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc. Estruturas de dados básicas Matriz homogênea Matriz

Leia mais

Listas Lineares. continuando...

Listas Lineares. continuando... Listas Lineares continuando... 1 Listas! relembrando: listas lineares agrupa informações referentes aum conjunto de elementos que, de alguma forma, se relacionam entre si! Uma lista linear ou está vazia,

Leia mais

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

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 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 mais

Árvores Binárias de Busca (ABB) 18/11

Árvores Binárias de Busca (ABB) 18/11 Árvores Binárias de Busca (ABB) 18/11 Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguintes propriedade: Para todo nó da árvore, se seu valor é X, então:

Leia mais

Fundamentos da Programação

Fundamentos 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 mais

Listas Estáticas. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista

Listas Estáticas. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista Listas Estáticas 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

Leia mais

Introdução a Programação. Tipos Abstratos de Dados Implementando Pilha e Fila

Introdução a Programação. Tipos Abstratos de Dados Implementando Pilha e Fila Introdução a Programação Tipos Abstratos de Dados Implementando Pilha e Fila Abstração Abstração é o processo ou resultado de generalização por redução do conteúdo da informação de um conceito ou fenômeno

Leia mais

ESTRUTURA DE DADOS (TCC )

ESTRUTURA 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 mais

ESTRUTURAS 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 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 mais

Módulo: PYTHON. Felipe Oliveira

Módulo: PYTHON. Felipe Oliveira Módulo: PYTHON Felipe Oliveira Tudo Blzinha? https://pip.pypa.io/en/stable/installing/ Ctrl + S Variáveis Palavras reservadas! Operadores Aritméticos Operadores básicos Operação Operador adição +

Leia mais

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

CES-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 mais

Aplicações de listas e outras estruturas. SCC-502 Algoritmos e Estruturas de Dados I

Aplicações de listas e outras estruturas. SCC-502 Algoritmos e Estruturas de Dados I Aplicações de listas e outras estruturas SCC-52 Algoritmos e Estruturas de Dados I Grandes números Problema: lidar com números muito grandes Em C, inteiros (mesmo long int) são limitados Como somar números

Leia mais

Estrutura de Dados Listas

Estrutura 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 mais

Universidade Estadual Paulista Júlio de Mesquita Filho UNESP

Universidade 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 mais

FICHA 8 PILHAS E FILAS

FICHA 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 mais

Professora Jeane Melo

Professora Jeane Melo Professora Jeane Melo Roteiro Lista Encadeada Alocação: Estática x Dinâmica O que são Ponteiros? Ponteiros Variáveis que Armazenam Endereços de Memória Mas, toda variável não é armazenada na memória? Ponteiros

Leia mais

Algoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira.

Algoritmos 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 mais

Instituto Luterano de Ensino Superior de Ji-Paraná Curso Bacharelado em Informática Estrutura de Dados I Prof.: José Luiz A.

Instituto Luterano de Ensino Superior de Ji-Paraná Curso Bacharelado em Informática Estrutura de Dados I Prof.: José Luiz A. 1 Instituto Luterano de Ensino Superior de Ji-Paraná Curso Bacharelado em Informática Prof.: José Luiz A. Duizith Procedimento Insere_Esquerda (Lista,Valor) Aloque(Aux) Se (Aux = Nil) Senao Aux.Dado Valor

Leia mais

Aplicações de vetores

Aplicações de vetores O TAD Vetor O TAD Vetor extende a noção de arranjo (array) armazenando sequências de objetos arbitrários Um elemento pode ser acessado, inserido ou removido através da especificação de sua colocação (rank)

Leia mais

Projeto de funções e instruções condicionais

Projeto de funções e instruções condicionais Projeto de funções e instruções condicionais Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons

Leia mais

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

Aula 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 mais

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA ÁRVORES E ÁRVORE BINÁRIA DE BUSCA Prof. André Backes Definição 2 Diversas aplicações necessitam que se represente um conjunto de objetos e as suas relações hierárquicas Uma árvore é uma abstração matemática

Leia mais

Estruturas de Dados I

Estruturas de Dados I Estruturas de Dados I Rodrigo Porfírio da Silva Sacchi rodrigosacchi@ufgd.edu.br 3410-2075 Aula 6: Listas Encadeadas e Alocação Dinâmica Listas Encadeadas e Alocação Dinâmica Alocação Seqüencial versus

Leia mais

Conceitos. Pilhas e Filas. Conceitos e Implementação em linguagem C. Maria Adriana Vidigal de Lima. Março

Conceitos. Pilhas e Filas. Conceitos e Implementação em linguagem C. Maria Adriana Vidigal de Lima. Março Conceitos e Implementação em linguagem C Março - 2009 1 Conceitos 2 Organização dos dados Em determinadas aplicações, as pilhas e filas representam estruturas de dados importantes, nas quais seus elementos

Leia mais

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

Prova 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 mais

SCC Algoritmos e Estruturas de Dados I

SCC 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 mais

Filas. 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, 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 mais

Estruturas de Dados Estruturas de Dados Fundamentais

Estruturas de Dados Estruturas de Dados Fundamentais Estruturas de Dados Estruturas de Dados Fundamentais Prof. Eduardo Alchieri Estruturas de Dados Fundamentais Todos os tipos abstratos de dados (pilhas, filas, deques, etc.) podem ser implementados usando

Leia mais

Fundamentos da Programação

Fundamentos da Programação Fundamentos da Programação Solução do Segundo Teste 18 de Janeiro de 2013 09:00 10:30 1. (2.0) Escolha a única resposta incorrecta para as seguintes questões. Cada resposta certa vale 1 valor e cada resposta

Leia mais

Árvores binárias de busca

Árvores binárias de busca Árvores binárias de busca Introdução à Ciência de Computação II Diego R. Amancio Baseado no material do Prof. Thiago A. S. Pardo Árvore binárias n Árvores de grau 2, isto é, cada nó tem dois filhos, no

Leia mais

Estruturas de Dados Filas

Estruturas 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 mais

Nomes, vinculações e escopos

Nomes, vinculações e escopos Nomes, vinculações e escopos Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual

Leia mais

Estruturas Compostas Parte II

Estruturas 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 mais

ESTRUTURAS DE DADOS E ALGORITMOS LISTA LIGADA

ESTRUTURAS 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 mais

Dicionários. TAD Orientado a conteúdo

Dicionários. TAD Orientado a conteúdo Dicionários TAD Orientado a conteúdo Dicionários efinição: Tipo abstrato de dados orientado a onteúdo. Contrasta com as PILHAs e FILAs que são orientadas a posição. perações implementadas: Inserir(d,x)

Leia mais

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões Edital de Seleção 024/2017 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: «Nome» INSCRIÇÃO: «Inscrição» Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome

Leia mais

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

Filas. Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1 Filas Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1 Índice Introdução Aplicações Implementação / Modelagem Operações de uma fila TAD da Fila em C UDESC - Rui J. Tramontin Jr. 2 Introdução

Leia mais

Estrutura de Dados II. Prof. Sérgio Portari

Estrutura 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 mais

LISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS. Estrutura de Dados

LISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS. Estrutura de Dados LISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS Listas Lineares Como visto anteriormente, as operações básicas para o nosso TAD Lista Linear são: FLVazia Vazia Retira Insere Imprime A implementação através de arrays

Leia mais

Edital de Seleção 023/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Edital de Seleção 023/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões Edital de Seleção 023/2018 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua

Leia mais

Tabelas Hash O Que é uma Tabela Hash? O Que é uma Tabela Hash? O Que é uma Tabela Hash? Inserindo um Novo Registro. O Que é uma Tabela Hash?

Tabelas Hash O Que é uma Tabela Hash? O Que é uma Tabela Hash? O Que é uma Tabela Hash? Inserindo um Novo Registro. O Que é uma Tabela Hash? Tabelas Hash O Que é uma Tabela Hash? Nesta aula são discutidos modos de armazenar informações em um vetor, e depois procurar por uma informação Tabelas Hash constituem uma abordagem comum para o problema

Leia mais

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

Prova 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 mais