Pesquisa em memória primária
|
|
|
- Maria das Dores Salazar Chaplin
- 8 Há anos
- Visualizações:
Transcrição
1 Pesquisa em memória primária
2 Pesquisa em memória primária Recuperar informação a partir de uma grande massa de informação previamente armazenada. Existem vários métodos de pesquisa, depende de: Tamanho (Quantidade de dados) Estabilidade (Os dados estarem sujeito a variações - retirado/inclusão) Pesquisa Sequencial Pesquisa Binária Árvores de Pesquisa
3 Pesquisa Sequencial O método de pesquisa mais simples. A partir do primeiro registro, pesquise sequencialmente até encontrar a chave procurada.
4 Pesquisa Binária A pesquisa pode ser mais eficiente se os registros forem mantidos em ordem. Para procurar uma chave com registros em ordem podemos: 1. Compare a chave com o registro que esta na posição do meio da tabela. 2. Se a chave é menor, o registro procurado deve estar na primeira metade, senão deve estar na segunda metade. 3. Repita o processo até encontrar a chave.
5 Pesquisa Binária A B C D E F G H (PROCURAR G) A B C D E F G H E F G H G H
6 Pesquisa binária Qual é o problema da pesquisa binária?
7 Árvores de pesquisa As listas encadeadas usualmente fornecem maior flexibilidade que as matrizes, mas são estruturas lineares e é difícil usá-las para organizar uma representação hierárquica de objetos. As pilhas e as filas apresentam hierarquia limitada a uma dimensão. As árvores são estruturas próprias para a representação de hierarquia. As árvores consistem de: Nós e arcos. A raiz, é um nó que não tem ancestrais tem somente filhos. As folhas não têm descendentes. As árvores são representadas de cima para baixo com a raiz no topo e as folhas na base.
8 Árvores Uma árvore T é um conjunto finito e não-vazio de nós T= {r} T1 T2... Tn, com as seguintes propriedades: um nó especial da árvore, r, é chamado de raiz da árvore; e o restante dos nós é particionado n 0 subconjuntos, T1, T2,, Tn, cada um dos quais sendo uma sub-árvore. A definição de uma árvore é recursiva, uma árvore é definida em termos dela mesmo. Não há o problema de recursão infinita porque toda árvore tem um número finito de nós e no caso base uma árvore tem n=0 subárvores. Uma árvore minimal é composta de um único nó, a raiz.
9 Árvores D A B E G C F H J M I K L Ta Tb Tc Ta = {A}, Ta é uma árvore minimal Tb = {B,{C}} Tc = {D,{E,{F}},{G,{H,{I}},{J,{K},{L}},{M}}}
10 Árvores O grau de um nó é o número de sub-árvores relacionadas com aquele nó. Um nó de grau zero não possui sub-árvores. Cada raiz ri da sub-árvore Ti é chamada de filho de r. A definição de uma árvore não impõem qualquer condição sobre o número de filhos de um nó. O número de filhos de um nó pode variar de 0 a qualquer inteiro. O nó raiz é o pai de todas as raízes ri das subárvores Ti, 1 i n.
11 Árvores Duas raízes ri e rj das subárvores distintas Ti e Tj de Tn são ditas irmãs. Dada uma árvore T que contém um conjunto de nós, um caminho em T é definido como uma seqüência não vazia de nós ou arcos P={r1, r2,, rk} onde ri R, para 1 i k tal que o i-ésimo nó da seqüência, ri,é o pai do (i+1)-ésimo nó da seqüência ri+1. O número de arcos em um caminho é chamado de comprimento do caminho P e é definido por k-1.
12 Árvores D E G F H J M I K L Na árvore T há 29 caminhos diferentes incluindo os caminhos de comprimento 0; os caminhos de comprimento 1, e os caminhos de comprimento 3.
13 Árvores O nível ou profundidade de um nó ri R da árvore T é o comprimento do único caminho em T entre a raiz r e o nó ri. A raiz T está no nível 0 e as raízes das subárvores estão no nível 1. A altura de um nó ri R numa árvore T é o comprimento do caminho mais longo do nó ri a uma folha. Folhas têm altura igual a 0. A altura de uma árvore T é a altura do nó raiz r. A árvore vazia é uma árvore legítima de altura 0 (por definição)
14 Árvores Uma árvore pode ser representada como um conjunto de reuniões aninhadas no plano (Diagrama de Venn). D E G F H J M I K L
15 Árvores Definições Nó pai nó ao qual um nó está ligado (diretamente). Nó filho cada um dos nós derivados de um nó pai. Nó ancestral todos os nós acima de um dado nó, em direção a raiz. Nó descendente todos os nós abaixo de um dado nó. Nós irmãos nós com o mesmo pai. Grau número de sub-árvores de um nó. Nó terminal (folha) nó sem filho ou com grau zero. Nível ou profundidade número de arcos entre um nó e a raiz. Altura da árvore nível mais alto. Floresta conjunto de árvores disjuntas.
16 Árvores N-árias Árvore N-ária: Uma variação de árvores na qual todos os nós têm exatamente o mesmo grau. Não é possível construir uma árvore com um número finito de nós, todos com o mesmo grau N, exceto se N=0. É um conjunto finito de nós com as seguintes propriedades: O conjunto é vazio, T= ; ou O conjunto consiste numa raiz, R, e exatamente N árvores N-árias distintas. Os nós remanescentes podem ser particionados em N 0 subconjuntos, T0, T1,, TN-1, cada um deles uma árvore N-ária tal que T={R, T0, T1,, TN-1 }. Os nós de uma árvore N-ária possuem grau 0 ou N.
17 Árvores N-árias A árvore vazia T= é uma árvore, um objeto do mesmo tipo que a árvore não vazia. Num projeto orientado a objetos, uma árvore vazia deve ser a instância de alguma classe de objetos. Nós externos: não possuem subárvores, árvores vazias, aparecem nas extremidades das árvores. Nós internos: árvores não vazias (possuem subárvores).
18 Árvores ternárias A B C D E G F H J M I K L
19 Árvores N-árias Os quadrados representam árvores vazias e os círculos denotam os nós não vazios. Árvores ordenadas: árvores cujas sub-árvores estão ordenadas. Árvores orientadas: árvores cuja ordenação não é importante.
20 Árvores Binárias Uma árvore binária é uma árvore N-ária para a qual N=2. Uma árvore binária T é um conjunto finito de nós com as seguintes propriedades: O conjunto é vazio, T= ; ou O conjunto consiste em uma raiz, r, e em exatamente duas árvores binárias distintas TL e TR, T={r, TL, TR}. A árvore TL é dita a subárvore da esquerda e a árvore TR é dita a subárvore da direita. Uma árvore binária com n 0 nós internos contém n+1 nós externos, árvore N-ária contém (N-1)n+1 nós externos.
21 Pesquisa em Árvores Algoritmos para a manipulação de árvores têm a característica comum: Visitar sistematicamente todos os nós das árvores. O processo de visitação dos nós da árvore é chamado de pesquisa em árvore. Há duas formas para a realização de um pesquisa: Pesquisa em profundidade e Pesquisa em largura.
22 Pesquisa em profundidade Alguns percursos em profundidade possuem nomes específicos: Pesquisa em pré-ordem, Pesquisa em pós-ordem e Pesquisa em ordem simétrica. B A D C E H F G I
23 Pesquisa em profundidade Pesquisa em pré-ordem A raiz é primeiro nó a ser visitado. A pesquisa é definida recursivamente. Visite o nó raiz. Percorra em pré-ordem cada uma das subárvores da raiz na ordem definida. Para uma árvore binária: Visite o nó raiz. Percorra em pré-ordem a subárvore esquerda. Percorra em pré-ordem a subárvore direita. Ex: A, B, C, D, E, F, G, H, I B C A E D H F G I
24 Pesquisa em profundidade Pesquisa em pós-ordem A raiz é último nó a ser visitado. A Pesquisa é definida recursivamente. Percorra em pós-ordem cada uma das subárvores da raiz na ordem definida. Visite o nó raiz. Para uma árvore binária: Percorra em pós-ordem a subárvore esquerda. Percorra em pós-ordem a subárvore direita. A Visite o nó raiz. Ex: C, B, F, G, E, I, H, D, A B C E D H F G I
25 Pesquisa em profundidade Pesquisa em Ordem Simétrica (in-ordem) O nó raiz é visitado entre as visitas das sub-árvores esquerda e direita. A pesquisa só faz sentido em árvores binárias. Percorra a subárvore esquerda. Visite o nó raiz. Percorra a subárvore direita. Ex: B, C, A, F, E, G, D, I, H B A D C E F G I H
26 Pesquisa em Largura ou Extensão A pesquisa em extensão visita os nós na ordem dos níveis da árvore de cima para baixo ou de baixo para cima. Pode-se visitar os nós em cada nível da esquerda para a direita ou da direita para esquerda. Há 4 possibilidades. A nível 0 B D nível 1 Ex: A, B, D, C, E, H, F, G, I C E H nível 2 F G I nível 3
27 Implementação de árvores binárias As árvores binárias podem ser implementadas: como matrizes e como estruturas encadeadas. Para implementar uma árvore binária como uma matriz: um nó é declarado como uma estrutura com um campo de informação e dois campos de ponteiros. Os campos de ponteiros contém os índices das células da matriz em que os filhos à esquerda e à direita são armazenados se houver algum. Índice Info Esq. Dir
28 Implementação de árvores binárias A implementação de árvores baseadas em matrizes pode ser incoveniente em função da alocação estática. Essa característica é importante pois pode ser difícil prever quantos nós devem ser criados. Normalmente uma estrutura de dados dinâmica é o modo mais eficiente de representar uma árvore. Em uma estrutura de dados dinâmica: um nó é instância de uma classe composta por um membro de informação e dois ponteiros que apontem para as sub-árvores direita e esquerda.
29 Árvores de Pesquisa São árvores que suportam operações eficientes de: busca, inserção e remoção. A árvore armazena um número finito de chaves a partir de um conjunto de chaves K totalmente ordenado. Cada nó na árvore contém pelo menos uma chave e todas as chaves são diferentes. Numa árvore de busca há um critério de ordenação de dados.
30 Pesquisa em Árvores de pesquisa A vantagem principal de uma árvore de busca: o critério de ordenação dos dados assegura que não é necessário fazer uma pesquisa completa numa árvore para encontrar um valor.
31 Árvores M-Múltiplas de Pesquisa Uma árvore M-múltipla de pesquisa T é um conjunto finito de chaves onde ou T é vazio ou T consiste de n árvores M-múltiplas de busca T0, T1,...,Tn-1, e n-1 chaves k1, k2,...,kn-1, T={T0, k1, T1, k2, T2,..., kn-1, Tn-1} onde 2 n M, tal que as chaves e os nós satisfazem as seguintes propriedades de ordenação: As chaves em cada nó são distintas e ordenadas: ki < ki+1 para 1 i n-1. Todas as chaves das subárvores Ti-1 são menores do que ki. A árvore Ti-1 é dita a subárvore da esquerda em relação a ki. Todas as chaves das subárvores Ti+1 são maiores do que ki. A árvore Ti +1 é dita a subárvore da direita em relação a ki.
32 Árvores M-Múltiplas de Pesquisa Cada nó não vazio tem entre 1 e 3 chaves e no máximo 4 subárvores. As chaves de cada nó estão ordenadas. 1,3,4 M=4 2 5,7 6 Árvore vazia
33 Árvores Binárias de Pesquisa Uma árvore binária de pesquisa T é um conjunto finito de chaves onde ou T é vazio ou T consiste em uma raiz e em exatamente 2 árvores binárias de busca TL e TR, T={r, TL, TR} tal que as seguintes propriedades são satisfeitas: Todas as chaves da subárvore TL são menores do que r. A árvore TL é dita a subárvore da esquerda em relação a r. Todas as chaves da subárvore TR são maiores do que r. A árvore TR é dita a subárvore da direita em relação a r.
34 Árvores Binárias de Pesquisa C A G B E I D F H
35 Pesquisa em Árvore de pesquisa A vantagem principal de uma árvore de pesquisa é: O critério de ordenação dos dados. Não é necessário fazer um percurso completo numa árvore para encontrar um valor. Busca em uma árvore M-múltipla de pesquisa Na busca de um valor x primeiramente examina-se as chaves do nó raiz. Se x não estiver no nó raiz há 3 possibilidades: x é menor que k1, neste caso a busca deve prosseguir na subárvore T0 ; x é maior que kn-1, neste caso a busca deve prosseguir na subárvore Tn-1 ; Ou existe um i tal que 1 i < n-1 para o qual ki < x < ki+1, caso em que a busca deve prosseguir na árvore Ti.
36 Pesquisa em Árvore de pesquisa Para uma árvore M-múltipla de pesquisa quando x não é encontrado em um certo nó, a busca continua apenas em uma das subárvores daquele nó. Uma busca com sucesso começa na raiz e percorre o caminho até o nó no qual a chave se encontra. Quando o objeto de busca não está na árvore, o método de busca descrito traça um caminho da raiz até uma subárvore vazia.
37 Pesquisa em Árvore binária de pesquisa Algoritmo para localizar um elemento em uma árvore binária. 1. Para cada nó compare a chave a ser localizada com o valor armazenado no nó correspondente. 2. Se a chave for menor vá para a sub árvore esquerda. 3. Se a chave for maior vá para a sub árvore direita. 4. A busca para quando a chave é igual ao nó. 5. O algoritmo também deverá parar se o valor não for encontrado.
38 Pesquisa em Árvore binária de pesquisa Para localizar o valor 31 apenas 3 testes são realizados. O pior caso é quando se busca o valor
39 Inserção de um nó em uma árvore binária Inserção de um novo nó (n_node) Faz-se c_node = raiz Enquanto c_node <> nulo { Se n_node < c_node n_node = filho esquerdo de c_node Se n_node > c_node n_node = filho direito de c_node } Anexar n_node filho esquerdo de n_node = nulo filho direito de n_node= nulo
40 Inserção de um nó em uma árvore binária
41 Inserção de um nó em uma árvore binária A inserção deve evitar a ocorrência do mesmo elemento mais de uma vez na árvore. Se a inserção de um mesmo elemento for necessária deve-se indicar a decisão a ser tomada em função da aplicação.
42 Remoção de um nó em uma árvore binária A remoção de um nó é outra operação necessária para se manter uma árvore binária de busca. O nível de complexidade depende da posição do nó a ser removido da árvore. Existem 3 casos de remoção de um nó da árvore binária de busca: O nó é uma folha e não tem filhos. O ponteiro de seu ascendente é ajustado para nulo e o nó é removido. O nó tem um filho. O ponteiro de seu ascendente é ajustado para apontar para o filho do nó e o nó é removido. O nó tem dois filhos. Nenhuma operação de uma etapa pode ser realizada pois os ponteiros esquerdo e direito do ascendente não podem apontar para ambos os filhos do nó a ser removido.
43 Remoção de um nó em uma árvore binária O nó é uma folha e não tem filhos
44 Remoção de um nó em uma árvore binária O nó tem um filho
45 Remoção de um nó em uma árvore binária Se o nó tem 2 filhos a remoção pode ser feita de duas formas: por fusão ou por cópia. Remoção por fusão Uma árvore é extraída de duas subárvores do nó e esta árvore é anexada ao ascendente do nó. Os valores da subárvore direita são maiores do que os valores da subárvore esquerda. Na subárvore da esquerda o nó com o maior valor deve tornar-se ascendente da subárvore direita. O nó com o maior valor na subárvore da esquerda é o nó mais à direita desta subárvore. Este nó pode ser encontrado movendo-se ao longo da subárvore e tomando-se sempre os ponteiros direitos até encontrar-se o valor nulo. Simetricamente na subárvore da direita o nó com o menor valor deve tornar-se um ascendente da subárvore esquerda.
46 Remoção de um nó em uma árvore binária por fusão Algoritmo Se o nó não tem filhos à direita Anexe seu filho da esquerda à seu ascendente Senão Se o nó não tem filhos à esquerda Anexe seu filho da direita à seu ascendente Senão { Mova-se para a esquerda Mova-se para a direita até encontrar o valor nulo O nó encontrado será ascendente da subárvore direita } Remova o nó
47 Remoção de um nó em uma árvore binária por fusão Nó a ser removido Nó procurado
48 Remoção de um nó em uma árvore binária por fusão Implementação if (node!=0) { } if (node->right==0) node=node->left; else if (node->left==0) node=node->right; else { tmp=node->left; 1 while (tmp->right!= 0) tmp=tmp->right; 2 tmp->right = node->right; 3 tmp=node; 4 node = node->left; 5 } delete tmp; 6
49 Remoção de um nó em uma árvore binária por fusão tmp Detalhes de implementação node node node 1 tmp node tmp node 2 tmp tmp 3 node 4 5 6
50 Remoção de um nó em uma árvore binária por fusão O algoritmo de remoção por fusão pode resultar no aumento da altura da árvore causando 10 desbalanceamento da árvore remoção do nó
51 Remoção de um nó em uma árvore binária por cópia A remoção por cópia remove uma chave k 1 sobreescrevendo-a por uma outra chave k 2 e então removendo o nó que contém k 2. e então removendo o nó que contém Se o nó tem 2 filhos ele pode ser reduzido a um dos dois casos simples: o nó é uma folha ou o nó tem somente um filho não-vazio. Pode-se substituir a chave que está sendo removida pelo seu predecessor (ou sucessor) imediato. O predecessor de chave é a chave do nó mais à direita na subárvore da esquerda. Analogamente, seu sucessor imediato é a chave do nó mais à esquerda na subárvore da direita. Localiza-se o predecessor a partir da raiz da subárvore esquerda e movendo-se para direita o tanto quanto possível até encontrar o valor nulo. Substitui-se a chave do predecessor pelo nó a ser removido. Dessa forma o nó se transforma em uma folha ou antecessor de apenas um filho não vazio.
52 Remoção de um nó em uma árvore binária por cópia 13 Nó a ser removido Nó procurado
53 Remoção de um nó em uma árvore binária por cópia Implementação if (node->right==0) node=node->left; else if (node->left==0) node=node->right; else { tmp=node->left; prev = node; while (tmp->right!= 0){ 1 prev=tmp; 2 tmp=tmp->right; } node->key = tmp->key; 3 if (prev->node==0) prev->left = tmp->left; 4 else prev->right = tmp->left; 5 } delete tmp;
54 Remoção de um nó em uma árvore binária por cópia Detalhes de implementação previous node tmp previous node previous node 1 tmp previous 2 node tmp 4 5
55 Balanceamento de árvores As árvores podem permitir que o processo de pesquisa seja muito mais rápido do que pesquisa em listas encadeadas. A forma da árvore influi na eficiência do processo de pesquisa
56 Balanceamento de árvores Uma árvore binária é balanceada se a diferença na altura de ambas as sub-árvores de qualquer nó na árvore é zero ou um. Uma árvore é perfeitamente balanceada se a árvore é balanceada e todas as folhas se encontram em um nível ou em dois níveis. Em uma árvore balanceada o número de nós n que uma árvore balanceada de altura h pode armazenar é dado por: n= 2h 1 Logo, a altura h necessária para armazenar n nós em uma árvore balanceada é dada por: h= log 2 (n+1)
57 Balanceamento de árvores Procedimento para balancear uma árvore Armazenar os dados ou chaves em uma matriz. Ordenar a matriz. Colocar na raiz o elemento central da matriz ordenada. O filho da esquerda da raiz será o elemento central entre os elementos da matriz ordenada que são menores que a raiz. O filho da direita da raiz será o elemento central entre os elementos da matriz ordenada que são maiores que a raiz. O processo se repete até que todos os elementos da matriz sejam colocados na árvore.
58 Balanceamento de árvores
59 Balanceamento de árvores (a) (b) (c) (d)
60 Balanceamento de árvores 4 (e) (f)
61 Balanceamento de árvores O algoritmo DSW (Day, Stout, Warren) utiliza procedimentos sem ordenação. A vantagem do algoritmo DSW é não precisar de uma matriz de dados adicional. O essencial para as transformações de árvore nesse algoritmo é a rotação. Há dois tipos de rotação: à esquerda e à direita. 1. O algoritmo DSW transforma uma árvore binária desbalanceada em uma árvore com estrutura semelhante à uma lista encadeada chamada espinha dorsal. 2. A árvore do tipo espinha dorsal é então transformada em uma árvore balanceada girando repetidamente cada segundo nó ao redor do seu ascendente.
62 Balanceamento de árvores Ch Gr A rotação à direita do nó Ch com relação ao seu ascendente Par é realizada de acordo com o seguinte algoritmo: RotateRight (Gr, Par, Ch) SE Par não é a raiz da árvore (se Gr não é nulo) o avô Gr do filho Ch se torna o ascendente de Ch substituindo-se Par; a subárvore direita de Ch se torna a árvore esquerda do ascendente Par de Ch; Gr o nó Ch recebe Par como seu filho direito; Par R P Ch Par P Q Q R
63 Balanceamento de árvores Operações básicas do algoritmo DSW: Criação de uma espinha dorsal. Rotações à direita e à esquerda. Transformação da espinha dorsal em uma árvore balanceada.
64 Balanceamento de árvores Na 1ªfase cria-se uma espinha dorsal: CreateBackbone(root,n) tmp = root; while ( tmp!= 0 ) if tmp tem um filho à esquerda Rotacione este filho em torno de tmp Ajuste tmp ao filho que acabou de se tornar pai else ajuste tmp ao seu filho direito
65 Balanceamento de árvores
66 Balanceamento de árvores NULL NULL
67 5 Balanceamento de árvores
68 Balanceamento de árvores Uma rotação exige o conhecimento sobre o ascendente de tmp de forma que outro ponteiro tem que ser mantido quando é implementado o algoritmo. Na 2ª fase a espinha dorsal é transformada em uma árvore balanceada. Em cada passe para baixo cada segundo nó até um ponto determinado é rotacionado ao redor de seu ascendente.
69 Balanceamento de árvores Na 2ª fase a espinha dorsal é transformada em uma árvore balanceada. CreatePerfectTree(n) M = 2 floor[lg(n+1)] -1; (lg=>base 2) Faça n-m rotações iniciando a partir do topo da espinha dorsal; While ( M > 1 ){ M = M/2; Faça M rotações iniciando a partir do topo da espinha dorsal;}
70 Balanceamento de árvores M = n M =
71 Balanceamento de árvores M = M/2 = 3 5 Par 10 R Ch Q 23 P Gr 23 Par Ch P R Par Gr Ch Par Ch Gr P Q P R Q
72 Balanceamento de árvores M = M/2 = Gr Gr Par Ch 40 R Ch P Par Q P Q R
73 Balanceamento de árvores R Par 25 Ch Q 30 P M = M/2 = Gr Gr Árvore balanceada Par Ch R Ch Par P Q P R Q
74 Exercício Faça um programa que crie uma arvore binária com as seguintes funções: Inserção de um nó na arvore. Remoção por fusão. Remoção por copia. Implemente o Algoritmo DSW de balanceamento de árvores. Fase 1 Fase 2
Á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
Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral
SCC-214 Projeto de Algoritmos Thiago A. S. Pardo Listas e árvores Listas lineares Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral Diversas aplicações necessitam de estruturas
Estruturas de Dados II
Estruturas de Dados II Rodrigo Porfírio da Silva Sacchi [email protected] 3410-2086 Aula 2: Árvores http://www.do.ufgd.edu.br/rodrigosacchi Árvores Definição: Árvores Uma árvore T é um conjunto
SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca
ÁRVORES SUMÁRIO Fundamentos Árvores Binárias Árvores Binárias de Busca 2 ÁRVORES Utilizadas em muitas aplicações Modelam uma hierarquia entre elementos árvore genealógica Diagrama hierárquico de uma organização
Á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
Algoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira.
Algoritmos e Estrutura de Dados II Árvore Prof a Karina Oliveira [email protected] Introdução Estruturas de dados lineares (pilha, fila) são estruturas que guardam coleções de elementos que são acessados
Á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
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
Fontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros:
Fontes Bibliográficas Estruturas de Dados Aula 15: Árvores Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos (Nivio Ziviani): Capítulo 5; Estruturas
Árvores. N-árias, Binárias, Busca. Vanessa Maia Berny Mestrado em Ciência da Computação
Árvores N-árias, Binárias, Busca Vanessa Maia Berny Mestrado em Ciência da Computação Disciplina de Estrutura de Dados Prof. Dr. Luzzardi, Paulo Roberto Gomes Abril de 2008 Árvores N-árias São estruturas
Conceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias
Conceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias Conceitos gerais Representação por Contiguidade Física Representação por Encadeamento Operações 2 Conceitos gerais Uma árvore
CES-11. Árvores. Conceito de árvore. Definição recursiva de árvore Definições associadas a árvore. Ordenação dos nós de uma árvore
Árvores Conceito de árvore CES-11 Definição recursiva de árvore Definições associadas a árvore Representações de árvores Ordenação dos nós de uma árvore CONCEITO DE ÁRVORE Tantos as pilhas como as filas
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.
Á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
ESTRUTURA DE DADOS. Árvores, árvores binárias e percursos. Cristina Boeres
ESTRUTURA DE DADOS Árvores, árvores binárias e percursos Cristina Boeres 2 Árvores! utilizada em muitas aplicações! modela uma hierarquia entre elementos árvore genealógica diagrama hierárquico de uma
Á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. Algoritmos e Estruturas de Dados I. José Augusto Baranauskas Departamento de Física e Matemática FFCLRP-USP
Árvores lgoritmos e Estruturas de Dados I Nesta aula veremos conceitos e definições sobre árvores Diferentemente das estruturas de pilhas, filas e listas que são lineares, uma árvore é uma estrutura de
CONCEITO DE ÁRVORE CES-11. A raiz é o único nó que não possui ancestrais. As folhas são os nós sem filhos. Exemplos:
Árvores associadas a árvore Tantos as pilhas como as filas são estruturas lineares, isto é, de uma única dimensão. Na sua implementação, as listas ligadas possibilitam maior flexibilidade que os vetores,
CES-11. Algoritmos e Estruturas de Dados
CES-11 Algoritmos e Estruturas de Dados CES-11 Carlos Alberto Alonso Sanches Juliana de Melo Bezerra CES-11 Conceito de árvore Tantos as pilhas como as filas são estruturas lineares, isto é, de uma única
Estrutura de Dados Árvores Prof. Tiago Eugenio de Melo, MSc material de referência
Estrutura de Dados Árvores Prof. Tiago Eugenio de Melo, MSc [email protected] material de referência http://www.tiagodemelo.info/aulas 1 Roteiro Motivação Representação de árvores Definição Terminologia
AED1 - Árvores. Hebert Coelho. Instituto de Informática Universidade Federal de Goiás. HC AED1-Árvores 1/49
AED1 - Árvores Hebert Coelho Instituto de Informática Universidade Federal de Goiás HC AED1-Árvores 1/49 Roteiro Árvore; Árvores - Representações; Árvores - Conceitos; Árvores Binárias; Árvores Binárias
Á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ó
Aula 08. Estruturas de dados Árvore e Grafo
Logo Aula 08 Estruturas de dados Árvore e Grafo 2 Árvore Estruturas estudadas até agora não são \ adequadas para representar dados que devem ser dispostos de maneira hierárquica Ex., hierarquia de pastas
Á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 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
Á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,
Árvores Conceitos gerais
http://www.mysticfractal.com/ FractalImaginator.html Árvores Conceitos gerais 9/11 Nesta aula veremos conceitos e definições sobre árvores Diferentemente das estruturas de pilhas, filas e listas que são
Á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ó
Á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
UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio;
UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio; e-mail: [email protected] Lista de Exercícios Árvores, Árvores Binárias, Árvores
Á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 E ÁRVORES BINÁRIAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
ÁRVORES E ÁRVORES BINÁRIAS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ÁRVORES Árvores Árvores Binárias INSTITUTO DE COMPUTAÇÃO - UFF 2 ÁRVORES Fonte de consulta: Szwarcfiter, J.; Markezon,
Exercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C Exercícios: Árvores 1. Utilizando os conceitos de grafos, defina uma árvore.
Árvores. Prof. Byron Leite Prof. Tiago Massoni Prof. Fernando Buarque. Engenharia da Computação. Poli - UPE
Árvores Prof. Byron Leite Prof. Tiago Massoni Prof. Fernando Buarque Engenharia da Computação Poli - UPE Motivação Para entradas realmente grandes, o acesso linear de listas é proibitivo Estrutura de dados
Á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:
ALGORITMOS AVANÇADOS. UNIDADE V Estruturas de dados dos tipos Árvore Binária e Árvore AVL. Luiz Leão
UNIDADE V Estruturas de dados dos tipos Árvore Binária e Árvore AVL Luiz Leão [email protected] http://www.luizleao.com Conteúdo Programático 5.1 - Árvores, Árvores Binárias e Árvores Binárias de Busca
Acesso Sequencial Indexado
Acesso Sequencial Indexado Utiliza o princípio da pesquisa seqüencial cada registro é lido seqüencialmente até encontrar uma chave maior ou igual a chave de pesquisa. Providências necessárias para aumentar
Árvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão
Árvores 1 Árvores! utilizada em muitas aplicações! modela uma hierarquia entre elementos! árvore genealógica! diagrama hierárquico de uma organização! modelagem de algoritmos! O conceito de árvores está
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.
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
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
Métodos de Pesquisa de Dados (II) Árvore N-ária de Pesquisa
UFSC-CTC-INE INE5384 - Estruturas de Dados Métodos de Pesquisa de Dados (II) Prof. Ronaldo S. Mello 2002/2 Árvore N-ária de Pesquisa Uma Árvore N-ária de Pesquisa (ANP) é uma árvore que: contém m subárvores
Árvores. Árvores Binárias. Conceitos gerais Terminologia Forma de Representação de Árvores. Conceitos gerais Operações
Árvores Conceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias Conceitos gerais Operações 2 Conceitos gerais Uma árvore é uma estrutura de dados que se caracteriza por uma relaçã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
Á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
DATA STRUCTURES, AN ADVANCED APPROACH USING C
ESTRUTURS DE DDOS prof. lexandre César Muniz de Oliveira 1. Introdução 2. Pilhas 3. Filas 4. Listas 5.Árvores 6. Classificação 7. Busca 8. Grafos Sugestão bibliográfica: ESTRUTURS DE DDOS USNDO C aron
Á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 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 AVL e Árvores B. Jeane Melo
Árvores AVL e Árvores B Jeane Melo Roteiro Árvores Binárias Árvores AVL Definição Motivação Balanceamento Operações de rebalanceamento Árvores B Introdução Árvores Binárias Árvores binárias Cada nó tem
Árvores de Pesquisa. A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar informação.
Árvores de Pesquisa A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar informação. Particularmente adequada quando existe necessidade de considerar todos ou alguma combinação
Á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 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
Linguagem C: Árvores AVL
Instituto de C Linguagem C: Árvores AVL Luis Martí Instituto de Computação Universidade Federal Fluminense [email protected] - http://lmarti.com Árvores Balanceadas As árvores binárias de pesquisa são,
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
Á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
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)
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,
Arvores, Percursos não recursivos, Arvores heterogêneas. Aula 19
Arvores, Percursos não recursivos, Arvores heterogêneas Aula 19 Arvores binárias encadeadas Percorrer uma árvore é uma operação muito comum e seria útil encontrar um método mais eficiente para implementar
Árvores Binárias. 9/11 e 11/11 Conceitos Representação e Implementação
Árvores Binárias 9/11 e 11/11 Conceitos Representação e Implementação Árvore Binárias (AB) Uma Árvore Binária (AB) T é um conjunto finito de elementos, denominados nós ou vértices, tal que: (i) Se T =,
Árvores Binárias. 16/11 Representação e Implementação: Encadeada Dinâmica O TAD
Árvores Binárias 16/11 Representação e Implementação: Encadeada Dinâmica O TAD ED AB, encadeada dinâmica Para qualquer árvore, cada nó é do tipo info esq dir typedef int elem; typedef struct arv *Arv;
Árvores Binárias Balanceadas Estrutura de Dados I
- entro de iências Exatas, Naturais e de Saúde Departamento de omputação Árvores inárias alanceadas Estrutura de Dados I OM06992 - Estrutura de Dados I Prof. Marcelo Otone guiar [email protected]
Árvores. Estruturas de Dados. Prof. Vilson Heck Junior
Árvores Estruturas de Dados Prof. Vilson Heck Junior Árvores INTRODUÇÃO Introdução Árvores são estruturas de dados utilizadas para armazenar e recuperar dados de forma rápida e eficiente; Árvores não são
ADT - Árvores. ADT Árvores Definição
ADT - Árvores Outro tipo abstrato de dados (ADT) é a árvore. Como acontece com as listas, a utilização das árvores será basicamente como estruturas de dados ao invés de tipos de dados. Ou seja, o foco
Á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).
Edital de Seleção 053/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 053/2016 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
Árvores balanceadas. Aleardo Manacero Jr.
Árvores balanceadas Aleardo Manacero Jr. Árvores Balanceadas Para que uma árvore seja, de fato, um mecanismo eficiente, é preciso que os seus elementos estejam distribuídos de forma relativamente homogênea
Exemplo Á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
