Filas de Prioridade & Heaps
|
|
|
- Márcia Lima Conceição
- 7 Há anos
- Visualizações:
Transcrição
1 Filas de Prioridade & SCC Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista [email protected] Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade de São Paulo (USP) 11 de novembro de 2013
2 TAD Fila de Prioridade Sumário 1 TAD Fila de Prioridade 2 3 Implementação em Arranjo
3 TAD Fila de Prioridade Sumário 1 TAD Fila de Prioridade 2 3 Implementação em Arranjo
4 TAD Fila de Prioridade TAD Fila de Prioridade Armazena Itens Item: par (chave, informação) Operações principais remove(f): remove e retorna o item com maior (menor) prioridade da fila F insere(f, x): insere um item x = (k,i) com chave k Operações auxiliares proximo(f): retorna o item com maior (menor) chave da fila F, sem removê-lo conta(f), vazia(f), cheia(f)
5 TAD Fila de Prioridade TAD Fila de Prioridade Diferentes Realizações (implementações)
6 TAD Fila de Prioridade TAD Fila de Prioridade Diferentes Realizações (implementações) Estáticas Lista estática (arranjo) ordenada Lista estática (arranjo) não ordenada Heap em arranjo
7 TAD Fila de Prioridade TAD Fila de Prioridade Diferentes Realizações (implementações) Estáticas Lista estática (arranjo) ordenada Lista estática (arranjo) não ordenada Heap em arranjo Dinâmicas Lista dinâmica ordenada Lista dinâmica não ordenada Heap dinâmico
8 TAD Fila de Prioridade TAD Fila de Prioridade Diferentes Realizações (implementações) Estáticas Lista estática (arranjo) ordenada Lista estática (arranjo) não ordenada Heap em arranjo Dinâmicas Lista dinâmica ordenada Lista dinâmica não ordenada Heap dinâmico Cada realização possui vantagens e desvantagens
9 TAD Fila de Prioridade TAD Fila de Prioridade Uma das escolhas diretas seria usar uma fila ordenada inserção é O(n) remoção é O(1) próximo é O(1) Outra seria usar uma fila não-ordenada inserção é O(1) remoção é O(n) próximo é O(n) Portanto uma abordagem mais rápida precisa ser pensada quando grandes conjuntos de dados são considerados
10 Sumário 1 TAD Fila de Prioridade 2 3 Implementação em Arranjo
11 Um heap é uma árvore binária que satisfaz as propriedades Ordem: para cada nó v, exceto o nó raiz, tem-se que chave(v) chave(pai(v)) - heap máximo chave(v) chave(pai(v)) - heap mínimo
12 Um heap é uma árvore binária que satisfaz as propriedades Completude: é completa, i.e., se h é a altura Todo nó folha está no nível h ou h 1 O nível h 1 está totalmente preenchido As folhas do nível h estão todas mais a esquerda
13 Convenciona-se aqui Último nó: nó interno mais à direita de profundidade h
14 Altura de um Heap Teorema Um heap armazenando n nós possui altura h de ordem O(log n).
15 Altura de um Heap Prova Dado que existem 2 i chaves na profundidade i = 0,..., h 1 e ao menos 1 chave na profundidade h, tem-se n h 1 + 1
16 Altura de um Heap Prova Dado que existem 2 i chaves na profundidade i = 0,..., h 1 e ao menos 1 chave na profundidade h, tem-se n h Isso é uma Progressão Geométrica (PG) com razão q = 2, dado que a soma de um PG pode ser calculada por S k = ak q a 1, temos n (2 h 1 2 1) + 1 = 2 h q 1
17 Altura de um Heap Prova Dado que existem 2 i chaves na profundidade i = 0,..., h 1 e ao menos 1 chave na profundidade h, tem-se n h Isso é uma Progressão Geométrica (PG) com razão q = 2, dado que a soma de um PG pode ser calculada por S k = ak q a 1, temos n (2 h 1 2 1) + 1 = 2 h q 1 Logo, n 2 h, i.e., h log 2 n h é O(log n)
18 Filas de Prioridade com Armazena-se um Item (chave, informação) em cada nó Mantém-se o controle sobre a localização do último nó (w) Remove-se sempre o Item armazenado na raiz, devido à propriedade de ordem do heap Heap mínimo: menor chave na raiz do heap Heap máximo: maior chave na raiz do heap
19 Inserção Método insere do TAD fila de prioridade corresponde à inserção de um Item no heap O algoritmo consiste de 3 passos 1 Encontrar e criar nó de inserção z (novo último nó depois de w) 2 Armazenar o Item com chave k em z 3 Restaurar ordem do heap (discutido a seguir)
20 Restauração da Ordem (fix-up) Após a inserção de um novo Item, a propriedade de ordem do heap pode ser violada
21 Restauração da Ordem (fix-up) Após a inserção de um novo Item, a propriedade de ordem do heap pode ser violada A ordem do heap é restaurada trocando os itens caminho acima a partir do nó de inserção Termina quando o Item inserido alcança a raiz ou um nó cujo pai possui uma chave maior (ou menor)
22 Inserção Algoritmo Inserir(F,x) inserirnofim(f) //insere na última posição fix_up(f) //restaura ordem do heap
23 Restauração da Ordem (fix-up) Para um heap máximo, temos 1 Algoritmo fix_up(f) 2 w = F.ultimo 3 while(!isroot(f,w)) && (key(f,w) > key(f,parent(f,w))) { 4 swap(f,w,parent(f,w)) 5 w = parent(f,w) //sobe 6 }
24 Remoção Método remove do TAD fila de prioridade corresponde à remoção do Item da raiz O algoritmo de remoção consiste de 3 passos 1 Armazenar o conteúdo do nó raiz do heap (para retorno) 2 Copiar o conteúdo do w no nó raiz e remover o nó w 3 Restaurar ordem do heap (discutido a seguir)
25 Remoção Utilizar o último nó para substituição da raiz na remoção possui várias vantagens, entre elas
26 Remoção Utilizar o último nó para substituição da raiz na remoção possui várias vantagens, entre elas Completude garantida (passo 2)
27 Remoção Utilizar o último nó para substituição da raiz na remoção possui várias vantagens, entre elas Completude garantida (passo 2) Implementação em tempo constante através de arranjo (discutida posteriormente)
28 Restauração da Ordem (fix-down) Após a remoção, a propriedade de ordem do heap pode ser violada
29 Restauração da Ordem (fix-down) Após a remoção, a propriedade de ordem do heap pode ser violada A ordem do heap é restaurada trocando os itens caminho abaixo a partir da raiz
30 Restauração da Ordem (fix-down) O algoritmo fix-down Termina quando o Item movido para a raiz alcança um nó que não possui filho com chave maior que sua
31 Restauração da Ordem (fix-down) O algoritmo fix-down Termina quando o Item movido para a raiz alcança um nó que não possui filho com chave maior que sua Quando ambos os filhos possuem chave maior que o Item inserido, a troca é feita com o filho de maior chave
32 Remoção Algoritmo Remover(F,x) x = inicio(f) //retorna o primeiro nó inicio(f) = fim(f) //copia fim no início fix_down(f) //restaura ordem do heap
33 Restauração da Ordem (fix-up) Para um heap máximo, temos 1 Algoritmo fix_down(f) 2 w = inicio(f) 3 while(tem_filho(w)) { 4 m = maior_filho(w) 5 if(chave(w) >= chave(m)) break 6 swap(f,w,m) 7 w = m //desce 8 }
34 Implementação em Arranjo Sumário 1 TAD Fila de Prioridade 2 3 Implementação em Arranjo
35 Implementação em Arranjo Implementação em Arranjo Vetores podem ser empregados para representar árvores binárias Caminha-pela árvore nível por nível, da esquerda para direita armazenando os nós no vetor O primeiro nó fica na posição 0 do vetor, seu filho a esquerda fica na posição 1, e assim por diante...
36 Implementação em Arranjo Implementação em Arranjo Nessa definição, dado o indice de um item, podemos encontrar seu filho a esquerda : 2 indice + 1 filho a direita : 2 indice + 2 pai: (indice 1)/2
37 Implementação em Arranjo Implementação em Arranjo Como o Heap é uma árvore completa, o vetor não vai ter buracos faltando itens Os itens que faltam sempre ficam no fim do vetor
38 Implementação em Arranjo Implementação em Arranjo - Estrutura 1 typedef struct heap_estatica HEAP_ESTATICA; 2 3 #define TAM struct heap_estatica { 6 ITEM * vetor[tam]; 7 int fim; 8 };
39 Implementação em Arranjo Implementação em Arranjo - Métodos Básicos 1 HEAP_ESTATICA *criar_heap() { 2 HEAP_ESTATICA *heap = (HEAP_ESTATICA*)malloc(sizeof(HEAP_ESTATICA)); 3 if (heap!= NULL) { 4 heap->fim = -1; 5 } 6 return heap; 7 } 8 9 int cheia(heap_estatica *heap) { 10 return (heap->fim == TAM - 1); 11 } int vazia(heap_estatica *heap) { 14 return (heap->fim == -1); 15 }
40 Implementação em Arranjo Implementação em Arranjo - Inserção 1 int enfileirar(heap_estatica *heap, ITEM *item) { 2 if (!cheia(heap)) { 3 heap->fim++; 4 heap->vetor[heap->fim] = item; 5 fix_up(heap); 6 return 1; 7 } 8 9 return 0; 10 }
41 Implementação em Arranjo Implementação em Arranjo - Inserção 1 void swap(heap_estatica *heap, int i, int j) { 2 ITEM *tmp = heap->vetor[i]; 3 heap->vetor[i] = heap->vetor[j]; 4 heap->vetor[j] = tmp; 5 } 6 7 void fix_up(heap_estatica *heap) { 8 int pos = heap->fim; 9 int pai = (pos - 1) / 2; while (pos > 0 && 12 heap->vetor[pos]->chave > heap->vetor[pai]->chave) { 13 swap(heap, pos, pai); 14 pos = pai; 15 pai = (pai - 1) / 2; 16 } 17 }
42 Implementação em Arranjo Implementação em Arranjo - Remoção 1 ITEM *desenfileirar(heap_estatica *heap) { 2 if (!vazia(heap)) { 3 ITEM *item = heap->vetor[0]; 4 heap->vetor[0] = heap->vetor[heap->fim]; 5 heap->fim--; 6 fix_down(heap); 7 return item; 8 } 9 return NULL; 10 }
43 Implementação em Arranjo Implementação em Arranjo - Remoção 1 void fix_down(heap_estatica *heap) { 2 int pos = 0; 3 4 while (pos <= heap->fim / 2) { 5 int filhoesq = 2 * pos + 1; 6 int filhodir = 2 * pos + 2; 7 8 int maiorfilho; 9 if (filhodir <= heap->fim && 10 heap->vetor[filhoesq]->chave < heap->vetor[filhodir]->chave ) { 11 maiorfilho = filhodir; 12 } else { 13 maiorfilho = filhoesq; 14 } if (heap->vetor[pos]->chave >= heap->vetor[maiorfilho]->chave) { 17 break; 18 } swap(heap, pos, maiorfilho); 21 pos = maiorfilho; 22 } 23 }
44 Implementação em Arranjo Comparação de Filas de Prioridade Via Lista Não-Ordenada Operação próximo insere remove Tempo O(n) O(1) O(n) Via Lista Ordenada Operação próximo insere remove Tempo O(1) O(n) O(1) Via Operação Tempo proximo O(1) insere O(log n) remove O(log n)
45 Implementação em Arranjo Exercício Implemente uma fila de prioridade que use um Heap dinâmico
Árvores Binárias. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich
Árvores Binárias SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista. Figuras editadas por Isadora Maria Mendes http://www.icmc.usp.br/~paulovic
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 [email protected] Instituto de Ciências
Árvores Binárias de Busca
Árvores Binárias de Busca SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic [email protected] Instituto
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 [email protected] Instituto de
Aplicação de Árvores: Código de Huffman
Aplicação de Árvores: Código de Huffman SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic [email protected] Instituto de Ciências Matemáticas
Matrizes Esparsas. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista
Matrizes Esparsas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic [email protected] Instituto
Ordenação: HeapSort. Prof. Túlio Toffolo BCC202 Aula 17 Algoritmos e Estruturas de Dados I
2014-01 Aula 16 Fila de Prioridade / HeapSort Adaptado por Reinaldo Fortes para o curso de 2014-01 Arquivo original: Aula 17: HeapSort Ordenação: HeapSort Prof. Túlio Toffolo http://www.toffolo.com.br
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
ESTRUTURA DE DADOS E ALGORITMOS HEAPS E LISTAS DE PRIORIDADES
ESTRUTURA DE DADOS E ALGORITMOS HEAPS E LISTAS DE PRIORIDADES Listas de Prioridades! Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade! A prioridade associada a um dado pode
Estruturas de Dados. Filas em que a prioridade de remoção não é cronológica. Maior prioridade não é do elemento que ingressou primeiro
Estruturas de Dados Filas de Prioridade Ricardo J. G. B. Campello Parte deste material é baseado em adaptações e extensões de slides disponíveis em http://ww3.datastructures.net (Goodrich & Tamassia).
Pilha. 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 [email protected] Instituto de Ciências
Ordenação: Heapsort. Algoritmos e Estruturas de Dados II
Ordenação: Heapsort Algoritmos e Estruturas de Dados II Introdução Possui o mesmo princípio de funcionamento da ordenação por seleção Selecione o menor item do vetor Troque-o pelo item da primeira posição
Pilha. 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 [email protected] Instituto de Ciências
Aula 13: Ordenação - Heapsort. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP
Aula 13: Ordenação - Heapsort Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Filas de Prioridades É uma estrutura de dados onde a chave de cada item reflete sua habilidade relativa de abandonar
INF 1010 Estruturas de Dados Avançadas
INF 1010 Estruturas de Dados Avançadas Listas de Prioridades e Heaps 1 Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada a um
DAINF - Departamento de Informática
DAINF - Departamento de Informática Algoritmos 2 - Árvore binária de busca Prof. Alex Kutzke ( http://alex.kutzke.com.br/courses ) 30 de Novembro de 2015 Slides adaptados do material produzido pelo Prof.
Filas Implementação Sequencial
SCE 202 182 Algoritmos e Estruturas de Dados I Filas Implementação Sequencial Conceito Coleção ordenada de itens (lista ordenada) em que a inserção de um novo item se dá em um dos lados no fim e a remoção
Á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
Á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
HeapSort Filas de Prioridade Heap. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
HeapSort Filas de Prioridade Heap David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Filas de Prioridades É uma estrutura de dados onde a chave de cada item reflete sua habilidade relativa de
ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
ÁRVORES BINÁRIAS DE BUSCA Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REFERÊNCIA Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Cap. 4 INSTITUTO DE COMPUTAÇÃO
Árvores binárias de busca
Árvores binárias de busca SCC-214 Projeto de Algoritmos Thiago A. S. Pardo Árvore binárias Árvores de grau 2, isto é, cada nó tem dois filhos, no máximo Raiz D B A E C F Terminologia: filho esquerdo filho
ÁRVORE BINÁRIA DE BUSCA TDA-ABB
ÁRVORE BINÁRIA DE BUSCA TDA-ABB Conceitos Gerais sobre Árvores Uma árvore é uma estrutura hierárquica dividida em níveis, que ou está vazia, ou contém elementos chamados nós; Diferentemente da árvore natural,
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
Introdução a AVL: teoria e prática. 22/11, 25/11 e 30/11
Introdução a AVL: teoria e prática 22/11, 25/11 e 30/11 Árvores binárias de busca (ABB) Árvores de grau 2, isto é, cada nó tem dois filhos, no máximo Raiz B A C Terminologia: filho esquerdo filho direito
Á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:
Árvores Binárias de Busca
Árvores AVL Árvores Binárias de Busca Altura de uma árvore binária (AB): igual à profundidade, ou nível máximo, de suas folhas A eficiência da busca em árvore depende do seu balanceamento Algoritmos de
Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo
PMR2300 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ó (exceto a
Árvores Binária de Busca. Prof. César Melo DCC/ICE/UFAM
Árvores Binária de Busca Prof. César Melo DCC/ICE/UFAM Introdução O algoritmo de busca binária em vetores tem bom desempenho e deve ser usado quando temos os dados já ordenados. No entanto, se precisarmos
Á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ó
Árvore Binária de Busca. Prof. César Melo
Árvore Binária de Busca Prof. César Melo Introdução O algoritmo de busca binária em vetores tem bom desempenho e deve ser usado quando temos os dados já ordenados. No entanto, se precisarmos inserir e
Árvores Binárias de Busca
Árvores AVL Árvores Binárias de Busca Altura de uma árvore binária (AB): igual à profundidade, ou nível máximo, de suas folhas A eficiência da busca em árvore depende do seu balanceamento Algoritmos de
Árvores Vermelho-Preto
Árvores Vermelho-Preto SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic [email protected] Instituto de Ciências Matemáticas e de Computação (ICMC)
UNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Algoritmos e Estruturas de Dados - Bioengenharia 2º Semestre Exame Especial Resolução 19/07/2013 A. [4.75 val] Algoritmos de ordenação e de pesquisa (usando memória estática
Filas 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
Pilhas 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
INF 1010 Estruturas de Dados Avançadas
INF 1010 Estruturas de Dados Avançadas Listas de Prioridades e Heaps 1 Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada a um
INF 1010 Estruturas de Dados Avançadas
11.2 INF 1010 Estruturas de Dados Avançadas Listas de Prioridades e Heaps 1 Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada
Programação II. Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio Árvores Dados organizados de maneira hierárquica Exemplos: arquivos em diretórios, subdivisão de espaço 2D em um
Á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:
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
Carlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB [email protected] Aritmética de ponteiros em C (continuação) O que acontece na memória? Ponteiro para ponteiro etc. Métodos de pesquisa
Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB [email protected] Árvores (parte 3) Estruturas de Dados 2 Organização dos dados: Linear: Listas, pilhas, filas. Relação sequencial.
INF 1010 Estruturas de Dados Avançadas. Árvores binárias
INF 1010 Estruturas de Dados Avançadas Árvores binárias 1 Árvore estrutura hierárquica: A B E F C D G A B C E F D G A B C D E F G (A (B (E, F)), C, (D (G))) 05/09/16 2 Árvore - definições árvore: nó raiz
1. Proponha algoritmos para: a. Calcular a altura dos nós de uma árvore binária dada, armazenando o valor da altura no nó.
1. Proponha algoritmos para: a. Calcular a altura dos nós de uma árvore binária dada, armazenando o valor da altura no nó. b. Achar o maior elemento (campo numérico) de uma árvore binária dada. c. Trocar
INF 1620 P2-01/11/03 Questão 1 Nome:
INF 1620 P2-01/11/03 Questão 1 Considere a implementação de uma lista encadeada para armazenar as notas dos alunos de uma turma dada pelo tipo abaixo: struct lista { char nome[81]; int mat; float p1, p2,
Tabelas de hash Acabamos de estudar como implementar uma tabela hashing aberta e estudaremos agora como implementar uma tabela hashing fechada ou
Tabelas de hash Acabamos de estudar como implementar uma tabela hashing aberta e estudaremos agora como implementar uma tabela hashing fechada ou também denominada de tabela hashing com endereçamento aberto.
Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura
Árvores B Prof. Márcio Bueno [email protected] / [email protected] Fonte: Material da Prof a Ana Eliza Lopes Moura Situação Problema Memória Principal Volátil e limitada Aplicações Grandes
Algoritmos e Estrutura de Dados II. Árvore AVL. Prof a Karina Oliveira. Fonte: Prof a Ana Eliza
Algoritmos e Estrutura de Dados II Árvore AVL Prof a Karina Oliveira [email protected] Fonte: Prof a Ana Eliza Árvores Binárias de Busca Objetivo da Utilização Minimizar o número de comparações efetuadas,
ÁRVORE BINÁRIA DE BUSCA
ÁRVORE BINÁRIA DE BUSCA Introdução O algoritmo de busca binária em vetores tem bom desempenho e deve ser usado quando temos os dados já ordenados. No entanto, se precisarmos inserir e remover elementos
Árvores & Árvores Binárias
Árvores & Árvores Binárias Problema Implementações do TAD Lista Linear Lista encadeada eficiente para inserção e remoção dinâmica de elementos, mas ineficiente para busca Lista seqüencial (ordenada) Eficiente
Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB [email protected] Listas e Filas Estruturas de Dados 2 Estrututuras de dados lineares Pilhas (stack) Estrutura de dados onde a inserção
Algoritmos, Estruturas de Dados e Tipos Abstratos de Dados (TADs)
Algoritmos, Estruturas de Dados e Tipos Abstratos de Dados (TADs) SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic
Árvores Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação
1 Árvores Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 2 Árvore Binária de Busca Definição: uma árvore binária de busca (ABB) é uma árvore binária na qual
1. Proponha algoritmos para: a. Calcular a altura dos nós de uma árvore binária dada, armazenando o valor da altura no nó.
1. Proponha algoritmos para: a. Calcular a altura dos nós de uma árvore binária dada, armazenando o valor da altura no nó. b. Achar o maior elemento (campo numérico) de uma árvore binária dada. c. Trocar
Lista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35
Lista Ordenada Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Definição Operações Representações Contígua Encadeada Aplicação Exercícios 2
UNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Programação II 1º Semestre Frequência 2 Resolução 07/01/2019 1. [1,25 val] - Análise de Complexidade dos Algoritmos Considere o seguinte bloco de código em linguagem C: for
Filas de Prioridades Letícia Rodrigues Bueno
Filas de Prioridades Letícia Rodrigues Bueno UFABC Heaps Heaps: lista linear com chaves s 1,..., s n com propriedade s i s i/2, para 1 < i < n; Heaps Heaps: lista linear com chaves s 1,..., s n com propriedade
Árvores Binárias de Busca
Árvores Binárias de Busca Algoritmos e Estruturas de Dados I Nesta aula será apresentado o ADT árvore binária de busca, também conhecidas como dicionários binários Uma árvore binária de busca é uma estrutura
PAA-DCC-UFAM. Árvores. Universidade Federal do Amazonas Departamento de Eletrônica e Computação
Árvores Universidade Federal do Amazonas Departamento de Eletrônica e Computação Árvores Árvores são conjuntos cujos elementos guardam uma relação hierarquica entre eles Terminologia (1) A é o nodo raiz.
Estruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 17 - Busca 2/6/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)
ESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres
ESTRUTURA DE DADOS E ALGORITMOS Árvores Binárias de Busca Cristina Boeres Árvore Binária de Busca 30! construída de tal forma que, para cada nó: nós com chaves menores estão na sub-árvore esquerda nós
Estruturas de Dados I
UFES - Curso de verão 2011 Estruturas de Dados I Profa. Juliana Pinheiro Campos [email protected] Árvores binárias de busca (ou São árvores projetadas para dar suporte a operações de busca de forma eficiente.
Ordenação Interna. Prof. Jonas Potros
Ordenação Interna Prof. Jonas Potros Heap A estrutura de dados heap é um objeto arranjo que pode ser visto como uma árvore binária completa. A árvore está completamente preenchida em todos os níveis, exceto
