Classificação e Pesquisa
|
|
- Domingos Affonso Diegues
- 8 Há anos
- Visualizações:
Transcrição
1 Classificação e Pesquisa Árvores Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Onde Estamos Ementa Pesquisa de Dados Seqüencial Binária Métodos de ordenação seleção e troca distribuição inserção Intercalação Árvores Pesquisa Binária AVL Patrícia B-Tree Tabelas hash Estática e Dinâmica 1
2 É uma estrutura de dados hierárquica Exemplo chave de times em um campeonato árvore genealógica organograma funcional Componentes Árvores raiz (root) nó superior aresta linha que liga os nós folhas nós filhos floresta conjunto de árvores grau do nó - número de nós filhos grau da árvore - é o máximo entre os graus de seus nós Operações Árvores procura, predecessor, antecessor, mínimo, máximo, inserir e deletar Idealmente, temos Árvore balanceada» Red black, avl, b tree Altura: log n para n nós armazenamento Muito grande para RAM Parte em RAM, parte em méio magnético» Meio magnético + lento 2
3 Estrutura de dados: árvore cada nó tem no máximo duas sub árvores Operações procura, predecessor, antecessor, mínimo, máximo, inserir e deletar Tempo é proporcional a altura da árvore Estrututa Campo chave Campo esquerdo Campo direito P = pai Se algum filho ou pai estiver ausente, o campo conterá nulo O nó raiz é o único que contém o campo pai nulo Implementando em um vetor Array com 7 posições: Armazenamento por nível: posição do nó posição dos filhos do nó 1 2,3 2 4,5 3 6,7 i (2i,2i+1) 3
4 Implementando em uma estrutura campo do valor 2 ponteiros : para o filho da esquerda e direita Estrutura (exemplo) typedef struct sttno { tipo inf; struct sttno *esq, *dir; } tno; Procedimento para imprimir todos os elementos de uma árvore binária INORDER-TREE-WALK(x) if x NIL then INORDER-TREE-WALK(left[x]) print key[x] INORDER-TREE-WALK(right[x]) Complexidade ɵ(n) Pois, após a chamada ao procedimento inicial, o procedimento é chamado de forma recursiva duas vezes (filho da direita e filho da esquerda) 4
5 Árvore binária de pesquisa Árvore Binária de Pesquisa nós são distribuídos de forma a facilitar a pesquisa Para qualquer nó x elementos a esquerda são menores que o elemento pai elementos a direita são maiores que o elemento pai Pesquisando TREE-SEARCH(x, k) if x = NIL or k = key[x] then return x if k < key[x] then return TREE-SEARCH(left[x], k) else return TREE-SEARCH(right[x], k) Chamada inicial: TREE-SEARCH(root[T ], k). Para procurar a chave
6 Versão não recursiva do algoritmo ITERATIVE-TREE-SEARCH(x, k) 1 while x NIL and k key[x] 2 do if k < key[x] 3 then x left[x] 4 else x right[x] 5 return x Complexidade Relativa a altura da árvore O(altura) Se a árvore estiver balanceada para 1000 elementos, 10 comparações O (log n) Senão O (n) Máximo e mínimo valor TREE-MINIMUM(x) while left[x] = NIL do x left[x] return x TREE-MAXIMUM(x) while right[x] = NIL do x right[x] return x Complexidade O(h), onde h é a altura da árvore 6
7 Sucessor e Predecessor TREE-SUCCESSOR(x) if right[x] = NIL then return TREE-MINIMUM(right[x]) ( g [ else y p[x] while y = NIL and x = right[y] do x y y p[y] return y Atenção: Os algoritmos de sucessor, mínimo, máximo e predecessor não procuram pelos valores Inserção ache a folha que será inserido o nó conecte o nó ao pai da folha Algortimo TREE-INSERT (T, z) y NIL x root [T] while x NIL do y x if key [z] < key[x] then x left[x] else x right[x] p[z] y if y = NIL then root [T] z else if key [z] < key [y] then left [y] z else right [y] z Complexidade relativa a altura O(h) h=altura 7
8 Remoção nó sem filhos somente ajustamos o ponteiro do nó pai Remoção nó com um único filho mover o filho para a posição do nó pai 8
9 Remoção nó com dois filhos procuramos o sucessor (ou predecessor), que deverá ocupar o seu lugar nó mais a esquerda da sub-árvore da direita como ele não tem filhos a esquerda, a sua sub-árvore a direita pode ser movida Remoção Algoritmo TREE-DELETE (T, z) if left [z] = NIL.OR. right[z] = NIL then y z else y TREE-SUCCESSOR (z) if left [y] NIL then x left[y] else x right [y] if x NIL then p[x] p[y] if p[y] = NIL then root [T] x else if y = left [p[y]] then left [p[y]][ x else right [p[y]] x if y z then key [z] key [y] if y has other field, copy them, too return y Complexidade relativa a altura O(h) h=altura 9
10 Exercício Para a árvore abaixo representada, responda as seguintes questões: Número de elementos Altura Elemento Root (Pai) Elementos folhas - exercícios 1-) Desenhe a árvore de pesquisa binária, com os itens S,U,P,E,R,F,A,C,I,L. Onde cada nó tenha somente uma letra. 2-) )(1211C ( Cormen): Trace as árvores de pesquisa binária ái de altura 2,3,4,5 e 6 sobre o conjunto de chaves {1,4,5,10,16,17,21} 3-) Para a árvore binária abaixo, mostre os elementos que serão mostrados, utilizando o algoritmo INORDER-TREE- WALK(x) 10
11 Exercícios 4-) Escreva o algortimo tree-predecessor. 5-) )Qual a complexidade d dos algortimos de sucessor e predecessor? Explique como você chegou nesta complexidade. Exercícios 6-) Para a seguinte árvore binária, responda as questões a-) Mostre os nós que são percorridos para achar o nó com valor 9. O que o algoritmo retornou? ) q p p q g b-) Mostre os nós que são percorridos para achar o nó com valor 8. O que o algoritmo retornou? c-) Ache o sucessor de 15. (Mostre os nós que o algoritmo percorreu) d-) Ache o sucessor de 6. (Mostre os nós que o algoritmo percorreu) e-) Ache o sucessor de 4. (Mostre os nós que o algoritmo percorreu) f-) Ache o predecessor de 6. (Mostre os nós que o algoritmo percorreu) g-) Insira o valor 19. (Mostre os nós que o algoritmo percorreu) h-) Insira o valor 1. (Mostre os nós que o algoritmo percorreu) i-) Remova o nó com valor 13. Desenhe o novo layout da árvore j-) Remova o nó com valor 6. Desenhe o novo layout da árvore 11
12 Exercícios 7-) ( Cormen) Suponha que você tenha os números de 1 a 1000 em uma árvore binária de busca, e quer localizar o número 363. Qual seqüência abaixo não pode ser a seqüência de nós examinados? a-) 2, 252, 401, 398, 330, 344, 397, 363. b-) 924, 220, 911, 244, 898, 258, 362, 363. c-) 925, 202, 911, 240, 912, 245, 363. d-) 2, 399, 387, 219, 266, 382, 381, 278, 363. e-) 935, 278, 347, 621, 299, 392, 358, ) Escreva um algoritmo que traga a soma de todos os valores de uma árvore. Qual a sua complexidade? Justifique. Animações na web Demo cis350/treetool/ BSTNew.html htt // t b / k d /d l/ BST.html 12
13 Árvore binária de pesquisa Balanceadas pela altura Árvores Balanceadas (AVL) Para cada nó na árvore, a altura das sub-árvores da direita e esquerda diferem em no máximo 1 Animações na WEB VL/AVL%20tree%20applet.htm strille net/works/media technology _projects/avl-tree_2001/ 13
14 B-Tree Árvores balanceadas trabalham com dispositivos secundários de armazenamento (ex. disco rígido) quando o acesso é feito em meio físico a velocidade é prejudicada devemos tentar minimizar estes acessos Cada nó tem um número variável de chaves e filhos As chaves são armazenadas em ordem crescente Cada chave tem um filho associado que é o root da sub-árvore contendo todos os nós com chave menor ou igual a chave,mas maior que a chave predecessora Um nó também tem o filho mais a direita sendo o root da subárvore contendo todas as chaves maiores que qualquer chave no nó B-Tree Fator de minimização Uma b-tree tem um número mínimo de filhos para cada nó, conhecido como fator de minimização. Se t é o fator de mínimização, cada nó deve ter pelo menos t-1 chaves Em algumas circustâncias, o nó root poderá violar esta propriedade tendo menos que t-1 chaves Cada nó pode ter no máximo 2t-1 chaves, ou, 2t filhos Quando cada nó tem um alto fator de crescimento (muitos filhos), e necessário atravessar vários nós antes de localizar a chave procurada Se o acesso ao nó requer acesso ao disco, a b-tree deverá minimizar i i estes acessos O fator de minimização é normalmente escolhido de forma que o tamanho total de cada nó corresponda a um múltiplo do tamanho do bloco no dispositivo de armazenamento Esta escolha simplifica e otimiza o acesso a disco 14
15 B-Tree Exemplo B-tree com fator de minimização 3 (t=3) mínimo de chaves (t-1) = 2 máximo de chaves (2t-1) = 5 máximo de filhos (2t) = 6 B-Tree B-Tree é uma estrutura de dados ideal: Situações onde todos os dados não podem residir em um único meio de armazenamento, e acessa um segundo meio de armazenamento, que são mais custosos (ou consomem mais tempo) 15
16 Criação A operação de criação, cria uma árvore B alocando um nó root sem valores e sendo também folha Complexidade O(1) B-Tree-Create(T) x <- Allocate-Node() leaf[x] <- TRUE n[x] <- 0 Disk-Write(x) root[t] <- x B-Tree B-Tree Pesquisa Semelhante a pesquisa em árvore binária. O filho correto é escolhido realizando uma busca linear nos valores do nó. (esquerda os menores, a direita os maiores) Depois de achado o valor maior ou igual ao valor desejado, seguimos o filho a esquerda e realizamos novamente a pesquisa Se todos os valores são menores que o procurado, o maior filho a direita e seguido Complexidade depende do tamanho da árvore. logo O(log n) B-Tree-Search(x, k) i <- 1 while i <= n[x] and k > keyi[x] do i <- i + 1 if i <= n[x] and k = keyi[x] then return (x, i) if leaf[x] then return NIL else Disk-Read(ci[x]) return B-Tree-Search(ci[x], k) Supomos que no segundo estágio, todos os nós estão armazenados em disco 16
17 Exemplo Pesquisando o valor 21 B-Tree B-Tree Inserção O nó apropriado para a inserção é localizado (algoritmo similar ao B- Tree-Search) A chave é inserida no nó Se o nó não está cheio, a chave é inserida sem nenhuma outra operação caso contrário, o nó deverá ser dividido para acomodar a nova chave a operação de divisão consistem em mover uma das chaves para o nó PAI, este não pode estar cheio também, caso isso ocorra, outra operação de divisão deverá ser realizada. Se cada acesso ao nó pode custar um acesso ao disco, e recomendado que o pai nunca esteja cheio. Para satisfazer essa situação, o algoritmo divide qualquer nó que estiver er cheio quando estiver er percorrendo a árvore para efetuar a inserção. As operações de divisão aumentam, mas você garante que o Pai nunca estará lotado Complexidade, desde que a operação de divisão rode em O(n), a inserção rodará em O(t log n) 17
18 B-Tree B-Tree-Insert(T, k) r< <- root[t] if n[r] = 2t - 1 then s <- Allocate-Node() root[t] <- s leaf[s] <- FALSE n[s] <- 0 c1 <- r B-Tree-Split-Child(s, 1, r) B-Tree-Insert-Nonfull(s, k) else B-Tree-Insert-Nonfull(r, k) B-Tree-Insert-Nonfull(x, k) i<- n[x] if leaf[x] then while i >= 1 and k < keyi[x] do keyi+1[x] <- keyi[x] i <- i - 1 keyi+1[x] <- k n[x] <- n[x] + 1 Disk-Write(x) else while i >= and k < keyi[x] do i <- i - 1 i <- i + 1 Disk-Read(ci[x]) if n[ci[x]] = 2t - 1 then B-Tree-Split-Child(x, i, ci[x]) if k > keyi[x] then i <- i + 1 B-Tree-Insert-Nonfull(ci[x], k) Divisão do nó (split) Se o nó está cheio, é necessário dividí-lo. Movemos a chave média do nó x para seu pai y Um novo nó z, torná-se o filho imediatamente a direita da chave média x que foi deslocada para o pai y e o nó original x, torná-se o filho imediatamente a esquerda da chave média que foi deslocada para y Esta operação transforma o nó com 2t-1 chaves em dois nós com t-1 chaves cada. Atenção: Somente uma chave foi movida para o pai. Complexidade d O(t), onde t é constante t B-Tree-Split-Child(x, i, y) z <- Allocate-Node() leaf[z] <- leaf[y] n[z] <- t - 1 for j <- 1 to t - 1 do keyj[z] <- keyj+t[y] if not leaf[y] then for j <- 1 to t do cj[z] <- cj+t[y] n[y] <- t - 1 for j <- n[x] + 1 downto i + 1 do cj+1[x] <- cj[x] ci+1 <- z for j <- n[x] downto i do keyj+1[x] <- keyj[x] keyi[x] <- keyt[y] n[x] <- n[x] + 1 Disk-Write(y) Disk-Write(z) Disk-Write(x) B-Tree 18
19 Exemplo Inserindo o valor 33, em uma árvore de faor de minimização t=3 B-Tree B-Tree Remoção 1. Se a chave não estiver numa folha, troque-a com seu sucessor imediato. 2. Elimine a chave da folha. 3. Se a folha continuar com o número mínimo de chaves, fim. 4. A folha tem uma chave a menos que o mínimo. Verifique as páginas irmãs da esquerda e direita: 4.1.se uma delas tiver mais que o número mínimo de chaves, aplique redistribuição. 4.2.senão concatene a página com uma das irmãs e a chave pai. 5. Se ocorreu concatenação, aplique passos de 3 a 6 para a página pai. 6. Se a última chave da raiz for removida, a altura da árvore diminui. Fonte: usp ( 19
20 Exercícios 1-) Onde b-trees são utilizadas? Dê exemplo de aplicações que façam uso delas. 2-) (usp) Explique a seguinte sentença: "B-Trees são construídas de baixo para cima, enquanto árvores binárias são construídas de cima para baixo". 3-) Pesquise e descreva o processo de remoção. 4-) Crie uma árvore B de grau 2, com os seguintes valores {1, 2, 3, 4, 5} 5-) Para quais valores de t, a árvore B abaixo é válida.. Exercícios 6-) Para a árvore B abaixo,com t=2, responda as seguintes questões: Qual o número mínimo de itens? Qual o número máximo de itens? Quando o nó é dividido? Insira os valores 42, 8, 14 Desenhe a árvore depois da inserção 7-) Construa a b-tree com os seguintes valores. (inseridos nesta ordem) Escolha um grau para a árvore B e informe-o antes da sua construção a-) b-) 3, 7, 9, 23, 45, 1, 5, 14, 25, 24, 13, 11, 8, 19, 4, 31, 35, 56 8-) Utilizando a árvore B criada no exercício 7a: Adicione as chaves : 2, 6,12 Remova as chaves: 4, 5, 7, 3, 14 20
21 Animações na web Demonstração Livro texto Bibliografia ZIVIANI, Nivio. Projeto de Algoritmos : com implementação em Pascal e C.. 2ª ed. São Paulo: Pioneira Thomson Learning, VELOSO, Paulo A. S.. Estrutura de Dados. 1ª ed. São Paulo: Campus, CORMEN, Thomas H. Algoritmos : teoria e prática. 1ª ed. Rio de Janeiro: CAMPUS, Complementar SCHILDT, Herbert. C Completo e Total. 3ª ed. São Paulo: Pearson Education, Education, CELES, Waldemar; CERQUEIRA, Renato. Introdução a Estruturas de Dados : com técnicas de programação em C. 4ª ed. Rio de Janeiro: Elsevier, 2004 WIRTH, Niklaus. Algoritmos e Estruturas de Dados. 1ª ed. Rio de Janeiro: LTC, 1989 TENENBAUM, Aaron M; SOUZA, Tereza Cristina Félix de. Estruturas de Dados usando C. 1ª ed. São Paulo: Makron Books,
Estruturas de Dados. Árvores. Onde Estamos? Introdução à estrutura de dados. Alocação dinâmica de memória. Pilhas. Filas.
Estruturas de Dados Árvores Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Ementa Introdução à estrutura de dados. Alocação estática de memória. Alocação dinâmica de memória.
Leia maisO conjunto de registros pode ser: Um vetor de registros Uma lista encadeada Uma árvore Etc.
Método de Busca O problema da busca (ou pesquisa) - Dado um conjunto de elementos, onde cada um é identificado por uma chave, o objetivo da busca é localizar, nesse conjunto, o elemento que corresponde
Leia maisÁrvores Binárias de Busca
Árvores Binárias de Busca Uma Árvore Binária de Busca T (ABB) ou Árvore Binária de Pesquisa é tal que ou T = 0 e a árvore é dita vazia ou seu nó contém uma chave e: 1. Todas as chaves da sub-árvore esquerda
Leia maisMo:vação. Árvore AVL. Caracterís:cas. Origem. Exemplo. Exercício 1 Qual é a altura dos nodos 50 e 44?
Mo:vação Árvore AVL Árvores binárias de Pesquisa possuem uma tendência natural de desbalancear 1 2 Rohit Gheyi rohit@dsc.ufcg.edu.br 6 8 1 2 Origem Adelson Velskii, G.; E. M. Landis (1962). "An algorithm
Leia maisBusca em Memória. Secundária
UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Busca em Memória Secundária e Gomes da Costa yandre@din.uem.br 1 Busca de um item em uma massa de dados que não cabe na memória principal; Procura-se
Leia maisÁrvore B UNITINS ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 3º PERÍODO 43
AULA A 3 ESTRUTURA RA DE DADOS Árvore B Esperamos que, ao final desta aula, você seja capaz de: identificar as vantagens da árvore B em relação às árvores binária de busca e AVL; conhecer as funções de
Leia maisÁrvores Binárias de Busca
Árvores Binárias de Busca Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguinte propriedade: Para todo nó da árvore, se seu valor é X, então: Os nós pertencentes
Leia maisIntrodução. Árvore B. CaracterísMcas. Origem do Nome. Exemplo. Grau. Rohit Gheyi. B vem de balanceamento
Árvore B Rohit Gheyi Introdução Rudolf Bayer, Binary B Trees for Virtual Memory, ACM SIGFIDET Workshop 97, San Diego, California, Session B, p. 9 3 MoMvação Custo alto de acesso a memória secundária A
Leia maisClassificação e Pesquisa de Dados
Classificação e Pesquisa de Dados Aula 20 Árvores B e B+ B-Trees (Árvores B) [Bayer & McCreight 1970] UFRGS INF01124 B-Trees (Árvores B) Árvores de pesquisa balanceadas, projetadas para minimizar o tempo
Leia maisLinguagem C: Árvores Binarias
Instituto de C Linguagem C: Árvores Binarias Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Tópicos Principais Introdução Árvores binárias Implementação
Leia maisINF 1007 Programação II
INF 1007 Programação II Aula 14 Árvores Binárias Edirlei Soares de Lima Árvores Uma estrutura de dados do tipo árvore permite que dados sejam organizados de maneira hierárquica.
Leia maisExemplo Árvore Binária
Árvores Rohit Gheyi Para entradas realmente grandes, o acesso linear O(n) de listas é proibi9vo Estrutura de dados não linear, cujas operações tem custos em geral O(log n) 1 2 Exemplo Como seria pesquisar
Leia maisINF1007: Programação 2 10 Árvores Binárias. (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 10 Árvores Binárias (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Introdução Árvores binárias Representação em C Ordens de percurso em árvores binárias Altura de uma árvore
Leia maisFACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2
FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO Projeto e Análise de Algoritmos II Lista de Exercícios 2 Prof. Osvaldo. 1. Desenvolva algoritmos para as operações abaixo e calcule a complexidade
Leia maisÁrvores Binárias Balanceadas
Árvores Binárias Balanceadas Elisa Maria Pivetta Cantarelli Árvores Balanceadas Uma árvore é dita balanceada quando as suas subárvores à esquerda e à direita possuem a mesma altura. Todos os links vazios
Leia maisÁrvore Binária de Busca
Árvore Binária de Busca 319 Árvore Binária de Busca! construída de tal forma que, para cada nó:! nós com chaves menores estão na sub-árvore esquerda! nós com chaves maiores (ou iguais) estão na subárvore
Leia maisBusca. Pesquisa sequencial
Busca Banco de dados existem para que, de tempos em tempos, um usuário possa localizar o dado de um registro, simplesmente digitando sua chave. Uma tabela ou um arquivo é um grupo de elementos, cada um
Leia maisPesquisa em Memória Primária. Prof. Jonas Potros
Pesquisa em Memória Primária Prof. Jonas Potros Procedimento para Inserir na Árvore Binária Critérios: Atingir um ponteiro nulo em um processo de pesquisa significa uma pesquisa sem sucesso. O ponteiro
Leia maisÁrvore Binária de Busca. Algoritmos e Estrutura de Dados II. Operações Busca e Sucessor. Árvore Binária de Busca. Árvores Rubro-Negras
Árvore Binária de Busca Algoritmos e Estrutura de Dados II Árvores Rubro-Negras Prof. Marco Aurélio Stefanes marco em dct.ufms.br Propriedades Se está na subárvore esquerda de então chave() chave() Se
Leia maisBUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES
BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES ALGORITMOS DE BUSCA EM LISTAS COM ALOCAÇÃO SEQÜENCIAL Busca em Listas Lineares A operação de busca é
Leia maisCT-234. Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches
CT-234 Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural Carlos Alberto Alonso Sanches CT-234 4) Árvores balanceadas AVL, Rubro-Negras, B-Trees Operações em árvores binárias de busca
Leia maisClassificação e Pesquisa
Classificação e Pesquisa Pesquisa de Dados - Seqüencial - Binária Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Onde Estamos Ementa Pesquisa de Dados Seqüencial Binária
Leia maisO problema da busca (ou pesquisa) - Dado um conjunto de elementos, onde cada um é identificado por uma chave, o objetivo da busca é localizar, nesse
Método de Busca O problema da busca (ou pesquisa) - Dado um conjunto de elementos, onde cada um é identificado por uma chave, o objetivo da busca é localizar, nesse conjunto, o elemento que corresponde
Leia maisEstruturas de Dados Aula 15: Árvores 17/05/2011
Estruturas de Dados Aula 15: Árvores 17/05/2011 Fontes Bibliográficas Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos (Nivio Ziviani): Capítulo
Leia maisEstruturas de Dados. Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos
Estruturas de Dados Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos Árvores Conceitos Árvores binárias Árvores binárias de pesquisa Árvores binárias balanceadas Árvores ESTRUTURAS
Leia maisAlgoritmos e Estrutura de Dados III. Árvores
Algoritmos e Estrutura de Dados III Árvores Uma das mais importantes classes de estruturas de dados em computação são as árvores. Aproveitando-se de sua organização hierárquica, muitas aplicações são realizadas
Leia maisINF1007 - PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 15
INF1007 - PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 15 1. Um número racional é expresso por dois inteiros: um numerador e um denominador (este último diferente de zero!). Implemente um TAD para representar números
Leia maisÁrvores Binárias - continuação
Tópicos Avançados em Estrutura de Dados 6º Período Ciência da Computação Uma Aplicação de Árvores Binárias Árvores Binárias - continuação As árvore binárias são estruturas importantes toda vez que uma
Leia maisPROGRAMAÇÃO II 4. ÁRVORE
4. ÁRVORE PROGRAMAÇÃO II Prof. Jean Eduardo Glazar Uma árvore impõe uma estrutura hierárquica em uma coleção de itens. Um exemplo familiar é a árvore genealógica. Árvores despontam de forma natural em
Leia maisINF 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
Leia maisÁrvores Balanceadas. Árvore binária completamente balanceada. Ocorre quando a árvore está cheia ou quase cheia com o nível n-1 completo
Árvores Balanceadas As árvores binárias de pesquisa são, em alguns casos, pouco recomendáveis para as operações básicas (inserção, remoção e busca) Árvores binárias de pesquisa degeneradas tornam as operações
Leia maisÁrvores B + Prof Márcio Bueno. ed2tarde@marciobueno.com / ed2noite@marciobueno.com. Material da Prof a Ana Eliza Lopes Moura
Árvores B + Prof Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Material da Prof a Ana Eliza Lopes Moura Árvore B + A árvore B + é uma variação da estrutura básica da árvore B. Características:
Leia mais- UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação
Programação 1I Prof. Osório Árvores Binárias Pag.: 1 - UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação Programação II Disciplina: Linguagem
Leia maisÁrvores AVL. Prof. Othon M. N. Batista Estrutura de Dados
Árvores AVL Prof. Othon M. N. Batista Estrutura de Dados Roteiro (/2) Árvore Binária de Pesquisa - Pior Tempo ABP Balanceada e Não Balanceada Balanceamento de Árvores Balanceamento de ABP Balanceamento
Leia maisEstruturas de Dados I
UFES - Curso de verão 2011 Estruturas de Dados I Profa. Juliana Pinheiro Campos jupcampos@gmail.com Árvores binárias de busca (ou São árvores projetadas para dar suporte a operações de busca de forma eficiente.
Leia maisDAS5102 Fundamentos da Estrutura da Informação
Árvores Existe uma ampla variedade de dados que são comumente organizados sob a forma de árvores hierárquicas utilizadas recorrentemente em nosso dia a dia. Exemplos são a organização administrativa de
Leia maisMétodos Computacionais. Árvores
Métodos Computacionais Árvores Árvores Vetores e Listas são ótimos para representar estrutura de dados lineares, mas não para modelar dados hierárquicos Exemplos de dados hierárquicos: sistema de arquivos
Leia maisSumário. 5COP096 Teoria da Computação Aula 8 Pesquisa em Memória Primária
5COP096 Teoria da Computação Aula 8 Prof. Dr. Sylvio Barbon Junior Sylvio Barbon Jr barbon@uel.br 1 Sumário 1) Introdução à Pesquisa em Memória Primária 2) Pesquisa Sequencial 3) Pesquisa Binária 4) Árvore
Leia maisBC1424 Algoritmos e Estruturas de Dados I. Aula 16: Árvores (introdução) Prof. Jesús P. Mena-Chalco. jesus.mena@ufabc.edu.br
BC1424 Algoritmos e Estruturas de Dados I Aula 16: Árvores (introdução) Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 1Q-2015 1 2 Árvores Uma árvore é uma estrutura de dados mais geral que uma lista
Leia maisPAA-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.
Leia maisÁrvores. Algoritmos e Estruturas de Dados 2005/2006
Árvores Algoritmos e Estruturas de Dados 2005/2006 Árvores Conjunto de nós e conjunto de arestas que ligam pares de nós Um nó é a raiz Com excepção da raiz, todo o nó está ligado por uma aresta a 1 e 1
Leia maisESTRUTURAS DE DADOS AVANÇADAS (INF 1010) (a) Seja um TAD definido por uma lista circular implementada em um vetor.
PUC-Rio Departamento de Informática Período: 2015.1 Horário: 2as-feiras e 4as-feiras de 17-19 30 de março de 2015 ESTRUTURAS DE DADOS AVANÇADAS (INF 1010) 1 a Lista de Exercícios 1. Lista (a) Seja um TAD
Leia maisPesquisa em Memória Primária. Algoritmos e Estruturas de Dados II
Pesquisa em Memória Primária Algoritmos e Estruturas de Dados II Pesquisa em Memória Primária Pesquisa: Recuperação de informação em um grande volume de dados Informação é dividida em registros e cada
Leia maisÁrvores e Árvores Binárias
MAC 5710 - Estruturas de Dados - 2008 Referência bibliográfica Os slides sobre este assunto são parcialmente baseados nas seções sobre árvores do capítulo 4 do livro N. Wirth. Algorithms + Data Structures
Leia maisAlgoritmos e Estruturas de Dados 2
Algoritmos e Estruturas de Dados 2 Unidade 1: Árvores binárias Rafael Beserra Gomes Universidade Federal do Rio Grande do Norte Material compilado em 21 de fevereiro de 201. Licença desta apresentação:
Leia mais- UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática
Laboratório I Prof. Osório Balanceamento de Árvores Binárias Pag.: - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática LABORATÓRIO II AULA : Balanceamento
Leia maisAlgoritmos e Estruturas de Dados: Árvore Binária
Algoritmos e Estruturas de Dados: Árvore Binária Exemplo de árvore binária e são os filhos de Altura desta árvore é 4 é a raiz da sub-árvore esquerda de Rômulo Silva de Oliveira Departamento de Automação
Leia maisPesquisa Sequencial e Binária. Introdução à Programação SI2
Pesquisa Sequencial e Binária Introdução à Programação SI2 3 Contexto Diferentes estratégias para pesquisa (busca) de um elemento específico em um conjunto de dados. Lista, array, coleção Operação importante,
Leia maisEAD Árvore árvore binária
EAD Árvore árvore binária - Uma árvore binária é um conjunto finito de elementos (nodos) que pode ser vazio ou particionado em três subconjuntos: - raiz da árvore (elemento inicial, que é único); - subárvore
Leia maisFila de Prioridade. Siang Wun Song - Universidade de São Paulo - IME/USP. MAC 5710 - Estruturas de Dados - 2008
MAC 5710 - Estruturas de Dados - 2008 Fila de prioridade Fila de prioridade é uma estrutura de dado que mantém uma coleção de elementos, cada um com uma prioridade associada. Valem as operações seguintes.
Leia mais2ª Lista de Exercícios
Universidade Federal de Minas Gerais Departamento de Ciência da Computação Algoritmos e Estruturas de Dados II (Turmas M, N, W, F) 1º Semestre de 2012 Profs. Camilo Oliveira, Gisele Pappa, Ítalo Cunha,
Leia maisPesquisa Sequencial e Binária
Pesquisa Sequencial e Binária Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 20 Algoritmos e Estruturas de Dados I Pesquisa em Memória Primária Introdução - Conceitos Básicos Pesquisa Sequencial
Leia maisÍndice. Capítulo 2 Estrutura de Dados sequencial com armazenamento sequencial
Índice i Índice Capítulo 2 Estrutura de Dados sequencial com armazenamento sequencial 1. A Estrutura Abstrata de Dados Lista... 1 1.1. Definição... 1 1.2. Implementação de Listas utilizando armazenamento
Leia maisDe uma forma ampla, o profissional egresso deverá ser capaz de desempenhar as seguintes funções:
PLANO DE ENSINO 1. Identificação Curso: Tecnologia em Desenvolvimento de Software Disciplina: Estrutura de Dados Professor: Msc. Tiago Eugenio de Melo CPF: Regime de Trabalho: 40h CH. Semestral: 100h Siape:
Leia maisFUNDAÇÃO EDUCACIONAL DE ITUIUTABA
FUNDAÇÃO EDUCACIONAL DE ITUIUTABA ASSOCIADA À UNIVERSIDADE DO ESTADO DE MINAS GERAIS CURSO DE SISTEMA DE INFORMAÇÃO PILHA E FILA Prof. Walteno Martins Parreira Júnior www.waltenomartins.com.br waltenomartins@yahoo.com
Leia maisESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8.
ESTRUTURAS DE DADOS prof. Alexandre César Muniz de Oliveira 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8. Grafos Sugestão bibliográfica: ESTRUTURAS DE DADOS USANDO C Aaron
Leia maisUnidade 5 Armazenamento e Indexação
Unidade 5 Armazenamento e Indexação Engenharia de Computação / Engenharia de Produção Banco de Dados Prof. Maria das Graças da Silva Teixeira Material base: Banco de Dados, 2009.2, prof. Otacílio José
Leia maisÁrvores Binárias e Busca. Jeane Melo
Árvores Binárias e Busca Jeane Melo Roteiro Parte 1 Árvores Relação hierárquica Definição Formal Terminologia Caminhamento em Árvores Binárias Exemplos Parte 2 Busca seqüencial Busca Binária Grafos Conjunto
Leia maisEstruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa 10.1.4217
Estruturas de Armazenamento e Indexação Rafael Lage Moreira Barbosa 10.1.4217 Estruturas de Armazenamento Banco de Dados são armazenados fisicamente como arquivos de registro, que em geral ficam em discos
Leia maisPesquisa em Memória Primária. Prof. Jonas Potros
Pesquisa em Memória Primária Prof. Jonas Potros Pesquisa em Memoria Primária Estudo de como recuperar informação a partir de uma grande massa de informação previamente armazenada. A informação é dividida
Leia maisÁrvore B, B* e B+ Slides: Profa. Dra. CrisAna Dutra de Aguiar Ciferri. Murilo Gleyson Gazzola. ICMC- USP - Base de Dados
Árvore B, B* e B+ Murilo Gleyson Gazzola Slides: Profa. Dra. CrisAna Dutra de Aguiar Ciferri 1 Tópicos - Árvore de Pesquisa - Árvore B - Árvore B* - Arvore B+ 2 Estrutura de Dados de Árvore A Legenda nó
Leia maisALGORITMOS E ESTRUTURAS DE DADOS CES-11 CES-11 CES-11
ALGORITMOS E ESTRUTURAS DE DADOS Prof. Paulo André Castro pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac IECE - ITA Uma árvore binária é: uma árvore vazia; ou uma árvore onde qualquer
Leia maisFigura 13.1: Um exemplo de árvore de diretório.
13. Árvores W. Celes e J. L. Rangel Nos capítulos anteriores examinamos as estruturas de dados que podem ser chamadas de unidimensionais ou lineares, como vetores e listas. A importância dessas estruturas
Leia maisEAD Árvore - representação usando listas ligadas
4.1. Definição É uma árvore binária em que os seus nodos têm associado uma chave, que - determina a sua posição de colocação na árvore e - obedece às seguintes regras: a chave de um nodo é - maior do que
Leia maisEstruturas de Dados Árvores
Estruturas de Dados Árvores Prof. Eduardo Alchieri Árvores (introdução) Importância de estruturas unidimensionais ou lineares (vetores e listas) é inegável Porém, estas estruturas não são adequadas para
Leia mais- UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação
Programação 1I Prof. Osório Árvores Genéricas Pag.: 1 - UNIVERSIDADE DO VALE DO RIO DOS SINOS CIÊNCIAS EXATAS E TECNOLÓGICAS Curso: Informática / Ciência da Computação Programação II Disciplina: Linguagem
Leia maisAlgoritmos de pesquisa. Tabelas de dispersão/hash
Algoritmos de pesquisa Tabelas de dispersão/hash Introdução Motivação: Considerar o problema de pesquisar um determinado valor num vetor (array). Se o vetor não está ordenado, a pesquisa requer O(n) de
Leia maisHashing Letícia Rodrigues Bueno
Hashing Letícia Rodrigues Bueno UFABC hash: Hashing (Tabelas de Dispersão): Introdução hash: Hashing (Tabelas de Dispersão): Introdução Hashing (Tabelas de Dispersão): Introdução hash: 1. fazer picadinho
Leia maisClassificação e Pesquisa
Classificação e Pesquisa Análise de Algoritmos - Complexidade Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Onde Estamos Ementa Pesquisa de Dados Seqüencial Binária Métodos
Leia maisAlgoritmos e Estruturas de Dados: Árvore Binária de Busca
Busca pelo nodo 72 Árvore Binária de Busca Introdução 2/21 Algoritmos e Estruturas de Dados: Árvore Binária de Busca 44 Raiz Rômulo Silva de Oliveira Departamento de Automação e Sistemas DAS UFSC romulo@das.ufsc.br
Leia maisEstruturas de Dados. Parte dos slides a seguir são adaptações, extensões e traduções para C dos originais:
Estruturas de Dados Pilhas Prof. Ricardo J. G. B. Campello Créditos Parte dos slides a seguir são adaptações, extensões e traduções para C dos originais: disponíveis em http://ww3.datastructures.net/ cedidos
Leia maisUniversidade Federal do Vale do São Francisco. Estruturas de Dados. Professor: Marcelo Santos Linder E-mail: marcelo.linder@univasf.edu.
Universidade Federal do Vale do São Francisco Estruturas de Dados Professor: Marcelo Santos Linder E-mail: marcelo.linder@univasf.edu.br Ementa Alocação dinâmica de memória; Vetores, pilhas, filas, listas:
Leia maisAlgoritmos e Estrutura de Dados. Aula 13 Estrutura de Dados: Árvores de Pesquisa Binária Prof. Tiago A. E. Ferreira
Algoritmos e Estrutura de Dados Aula 13 Estrutura de Dados: Árvores de Pesquisa Binária Prof. Tiago A. E. Ferreira Introdução Uma árvore de pesquisa binária são estruturas de dados que admitem operações
Leia mais1. Introdução... 1 1.1. Definição... 1 1.2. Conceitos relacionados... 2
Índice i Índice Capítulo 4 Estrutura de Dados não sequencial com armazenamento não sequencial ( Árvore ) 1. Introdução... 1 1.1. Definição... 1 1.2. Conceitos relacionados... 2 2. Árvores binárias... 2
Leia maisPesquisa Sequencial e Binária
Pesquisa Sequencial e Binária Prof. Wylliams Barbosa Santos wylliamss@gmail.com Introdução à Programação Crédito de Conteúdo: Professora Ceça Moraes Agenda Pesquisa Sequencial Noções de complexidade Pesquisa
Leia maisESTRUTURAS DE DADOS I. Notas de Aula. Prof. Dr. Gilberto Nakamiti
ESTRUTURAS DE DADOS I Notas de Aula 1 SUMÁRIO 1. INTRODUÇÃO... 2 1.1 Array (vetores)... 2 2. BUSCA DE ELEMENTOS... 3 2.1 Busca Seqüencial... 3 2.2 Busca Binária... 3 2.3 Busca Indexada... 3 2.4 Busca Hash...
Leia maisÁrvores binárias de pesquisa com balanceamento. Algoritmos e Estruturas de Dados II
Árvores binárias de pesquisa com balanceamento Algoritmos e Estruturas de Dados II Árvores binárias de pesquisa Pior caso para uma busca é O(n) 1 3 Ordem de inserção: 1 3 2 4 5 6 2 4 5 6 2 Árvore completamente
Leia maisDAS5102 Fundamentos da Estrutura da Informação
Fila de Prioridade A fila de prioridade nada mais é que uma fila comum que permite que elementos sejam adicionados associados com uma prioridade. Cada elemento na fila deve possuir um dado adicional que
Leia maisESTRUTURA DE DADOS PILHA
ESTRUTURA DE DADOS PILHA CONCEITO DE PILHAS - Pilhas são listas lineares onde a inserção de um novo item ou a remoção de um item já existente se dá em uma única extremidade, no topo. Pilha vazia Insere(A)
Leia maisWeb site. Objetivos gerais. Introdução. http://www.inf.ufes.br/~pdcosta/ensino/2009-1-estruturas-de-dados. Profa. Patrícia Dockhorn Costa
Web site http://www.inf.ufes.br/~pdcosta/ensino/2009-1-estruturas-de-dados Estruturas de Dados Aula 1: Introdução e conceitos básicos Profa. Patrícia Dockhorn Costa Email: pdcosta@inf.ufes.br 01/03/2010
Leia maisÁrvores Binárias. Observação: Material elaborado a partir do material do Professor Marcos Costa.
Árvores Binárias Observação: Material elaborado a partir do material do Professor Marcos Costa. Árvores Binárias Árvore binária é definida como um conjunto finito de nós que Ou está vazio Ou consiste de
Leia maisESTRUTURAS DE DADOS E ALGORITMOS ÁRVORE BINÁRIA
ESTRUTURAS DE DADOS E ALGORITMOS 1 ÁRVORE BINÁRIA Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande ÁRVORE (EXEMPLO) Como seria pesquisar a localização de
Leia maisEstruturas de Dados Pilhas, Filas e Deques
Estruturas de Dados Pilhas, Filas e Deques Prof. Eduardo Alchieri Estruturas de Dados Pilhas Pilhas Lista LIFO (Last In, First Out) Os elementos são colocados na estrutura (pilha) e retirados em ordem
Leia maisProf. Yandre Maldonado - 1 PONTEIROS. Prof. Yandre Maldonado e Gomes da Costa
Prof. Yandre Maldonado - 1 PONTEIROS Prof. Yandre Maldonado e Gomes da Costa PONTEIROS Prof. Yandre Maldonado - 2 Ponteiro é uma variável que possui o endereço de outra variável; É um poderoso recurso
Leia maisSUMÁRIO. Introdução... 3
SUMÁRIO Introdução..................................... 3 1 Consultas por Similaridade e Espaços métricos............. 5 1.1 Consultas por abrangência e consultas aos k-vizinhos mais próximos... 5 1.2
Leia maisComplexidade de Algoritmos
Complexidade de Algoritmos Complexidade de Algoritmos Envolvendo Estruturas de Dados Elementares Prof. Osvaldo Luiz de Oliveira Estas anotações devem ser complementadas por apontamentos em aula. Vetor
Leia maisComo posso usar o HP Easy Printer Care através de USB ou conexão paralela?
HP Easy Printer Care Perguntas freqüentes Como posso usar o HP Easy Printer Care através de USB ou conexão paralela? O HP Easy Printer Care só pode ser usado através de USB ou de uma conexão paralela se
Leia maisFigura 1 Busca Linear
----- Evidentemente, possuir os dados não ajuda o programador ou o usuário se eles não souberem onde os dados estão. Imagine, por exemplo, uma festa de casamento com cem convidados na qual não se sabe
Leia maisEstruturas de Dados. Árvores AVL. Cesar Tadeu Pozzer. pozzer3@gmail.com, pozzer@inf.ufsm.br. Curso de Ciência da Computação UFSM (12/12/2007)
struturas de ados Árvores VL esar Tadeu Pozzer pozzer3@gmail.com, pozzer@inf.ufsm.br.b urso de iência da omputação UFSM (12/12/2007) Árvore VL Uma árvore binária é denominada VL quando a diferença de altura
Leia maisAlgoritmos de Busca em Tabelas
Dentre os vários algoritmos fundamentais, os algoritmos de busca em tabelas estão entre os mais usados. Considere por exemplo um sistema de banco de dados. As operações de busca e recuperação dos dados
Leia maisPointer Jumping. odg(v) e idg(v): graus de saída e entrada do vértice v V. um vértice r tal que. O vértice r é dita raíz de T
Pointer Jumping T = (V,E) : árvore direcionada odg(v) e idg(v): graus de saída e entrada do vértice v V um vértice r tal que v V-{r}, odg(v) = 1, odg(r)=0 v V-{r}, um caminho de v a r O vértice r é dita
Leia maisAlgumas notas sobre PASCAL
Algumas notas sobre PASCAL PARTE I Anjolina Grisi de Oliveira 1 Um programa em PASCAL Esse texto inclui algumas notas sobre a linguagem PASCAL. As diferenças existentes entre os diversos compiladores não
Leia maisEstruturas de Dados Aula 11: TAD Pilha 09/05/2011
Estruturas de Dados Aula 11: TAD Pilha 09/05/2011 Fontes Bibliográficas Livros: Projeto de Algoritmos (Nivio Ziviani): Capítulo 3; Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo
Leia maisBanco de Dados I 2007. Módulo V: Indexação em Banco de Dados. (Aulas 1, 2 e 3) Clodis Boscarioli
Banco de Dados I 2007 Módulo V: Indexação em Banco de Dados (Aulas 1, 2 e 3) Clodis Boscarioli Agenda: Estruturas de Índices; Conceitos; Tipos de Índices: Primários; Secundários; Clustering; Multiníveis;
Leia maisOrganização de arquivos
Organização de arquivos Por que ver sistema de arquivos? O sistema de arquivos é quem realmente se responsabiliza por guardar os dados que um aplicativo ou mesmo o banco de dados gerencia. Não é tarefa
Leia maisTabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008
Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,
Leia maisEstruturas de Dados. Listas Dinâmicas Duplamente Encadeadas & Variantes. Listas Duplamente Encadeadas
Estruturas de Dados Listas Dinâmicas Duplamente Encadeadas & Variantes Prof. Ricardo J. G. B. Campello Listas Duplamente Encadeadas Listas simplesmente encadeadas são ineficientes para realizar certas
Leia maisESTRUTURA DE DADOS DCC013
ESTRUTURA DE DADOS DCC013 Árvores Pesquisa sequencial Preliminares Elementos pesquisados sucessivamente Comparação determina se o elemento foi encontrado ou não Exemplo: buscar 4 (Arrays e lista encadeada)
Leia maisAlgoritmos e Estrutura de Dados II
Universidade Federal do Vale do São Francisco Algoritmos e Estrutura de Dados II Professor: Marcelo Santos Linder E-mail: marcelo.linder@univasf.edu.br Ementa Árvores B, grafos e tabelas de hash: alocação
Leia mais