Árvores binárias de busca

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

Download "Árvores binárias de busca"

Transcrição

1 Árvores binárias de busca / Árvores de busca / 1 Árvores binárias de busca, ou binary search trees, BST, são árvores binárias onde, para cada sub-árvore, todos os elementos da sub-árvore da esquerda são menores do que a raiz e a raiz é menor do que todos os elementos da subárvore da direita. Sendo assim, ao fazer um percurso direto da árvore, apanhamos os elementos por ordem crescente: 3, 12, 14, 32, 42, 43, 44, 47, 49, 51, 58, 63. Uma árvore binária deste tipo é de busca (em relação ao campo chave) se cada nó X tem a seguinte propriedade: a chave de X é 1. maior ou igual à chave de qualquer nó na subárvore esquerda de X e 2. menor ou igual à chave de qualquer nó na subárvore direita de X. Em outras palavras, se x é (o endereço de) um nó qualquer então y->chave x->chave z->chave. para todo nó y na subárvore esquerda de x e todo nó z na subárvore direita de x. Há uma outra maneira, talvez mais clara, de descrever esta propriedade: a ordem e-r-d das chaves é crescente. Para localizar um elemento, comparamos seu valor. Se o elemento procurado é igual à raiz, elemento encontrado; se não, se é menor, procuramos na sub árvore esquerda; se não, procuramos na subárvore direita. A figura ao lado mostra o caminho percorrido para localizar o nó com o valor 49. Podemos utilizar uma árvore de busca para a busca de registros armazenados em um arquivo em disco. Os valores na árvore podem ser um dos campos do arquivo, chamado campo de busca (por isso árvores binárias de busca são também conhecidas como dicionários binários, um campo chave (key) é um dado de identifica univocamente uma informação). Cada valor de chave na árvore é associado a um ponteiro para o registro no arquivo de dados que possua aquele valor. Na pesquisa binária, as operações de busca em um conjunto com n elementos podem ser efetuadas em O(log2n), na realidade, log2 n mesmo no pior caso. No caso em que o conjunto de elementos se encontre em um arquivo em disco, sendo que os elementos (registros) estão ordenados por um campo chave então seria possível aplicar uma pesquisa binária para encontrar um elemento chave qualquer. Operações Operações em uma árvore binária requerem comparações entre nós. Busca A busca começa examinando o nó raiz. Se a árvore está vazia, o valor procurado não pode existir na árvore. Caso contrário, se o valor é igual a raiz, a busca foi bem sucedida.

2 / Árvores de busca / 2 Se o valor é menor do que a raiz, a busca segue pela subárvore esquerda. Similarmente, se o valor é maior do que a raiz, a busca segue pela subárvore direita. Esse processo é repetido até o valor ser encontrado ou a subárvore ser nula (vazia). Se o valor não for encontrado até a busca chegar na subárvore nula, então o valor não deve estar presente na árvore. Inserir um nó Para adicionar um elemento x a uma árvore de busca basta localizar a posição correta: Se a árvore estiver vazia, adicione um novo nó contendo o elemento x Se a raiz é maior que x então insira x na subárvore esquerda, caso contrário insira x na subárvore direita A localização do ponto de inserção é semelhante à busca por um valor na árvore. Após a inserção do novo elemento, a árvore deve manter as propriedades de árvore binária de busca. O nó inserido é sempre uma folha.

3 / Árvores de busca / 3 Remover um nó Para remover um elemento x a uma ABB há três situações possíveis: Não existe nenhum nó com chave igual a x O nó com chave x possui, no máximo, uma das subárvores O nó com chave x possui as duas subárvores Apagar uma folha não representa problema. Apagar um nó que possui um filho também é simples: liga-se o (único) filho do nó apagado ao avô, do mesmo lado. Para apagar um nó com dois filhos, troca-se o valor do nó com o valor do nó seguinte e depois apaga-se o nó seguinte. O nó seguinte de um nó com dois filhos ou é uma folha ou só tem um filho. Logo, pode apagar-se como descrito anteriormente.

4 / Árvores de busca / 4 Caso 1 O nó a ser removido é uma folha Caso 2 O nó X a ser removido não é uma folha 2a. esqdir = nó mais à direita da sub-arvore esquerda; conteúdo do no X = conteúdo de esqdir; remover (recursivamente) o nó esqdir; 2a. esqdir = nó mais à direita da sub-arvore esquerda; conteúdo do no X = conteúdo de esqdir; remover (recursivamente) o nó esqdir;

5 / Árvores de busca / 5 2b. diresq = nó mais à esquerda da sub-arvore direita; conteúdo do no X = conteúdo de diresq; remover (recursivamente) o nó diresq; Exemplo arvore.h #ifndef ARVORE_H_INCLUDED #define ARVORE_H_INCLUDED class BinarySearchTree { private: // declaracao de tipos struct TreeNode { // tipo de dado colocado na arvore int valor;

6 // subarvores / Árvores de busca / 6 TreeNode *noesquerdo, *nodireito; ; typedef TreeNode *TreePointer; // declaracao de campos TreePointer root; void excluir(int x, TreePointer &t); void excluirmenor(treepointer &q, TreePointer &r); bool procurarecursiva(int x, TreePointer &t); void imprimir(treepointer &q, int level); public: BinarySearchTree(); ~BinarySearchTree(); void inserir(int x); void excluir(int x); bool procurar(int x); void limpar() {; void imprimir(); bool vazio(); bool cheio(); int minimo(); int maximo(); ; #endif // ARVORE_H_INCLUDED arvore.cpp #include <iostream> #include <cstdlib> #include <iomanip> #include "arvore.h"

7 using namespace std; / Árvores de busca / 7 // construtor BinarySearchTree::BinarySearchTree() { root = NULL; // destrutor BinarySearchTree::~BinarySearchTree() { limpar(); // indicar se a arvore esta vazia bool BinarySearchTree::vazio() { return (root == NULL); // indicar se a arvore esta cheia bool BinarySearchTree::cheio() { return false; // retornar o menor elemento int BinarySearchTree::minimo() { TreePointer t=root; if(t == NULL) { cout << "Arvore vazia" << endl; exit(0); while (t->noesquerdo!= NULL) t = t->noesquerdo; // procurar subarvore esquerda return t->valor; // retornar o maior elemento int BinarySearchTree::maximo() {

8 TreePointer t=root; / Árvores de busca / 8 if(t == NULL) { cout << "Arvore vazia" << endl; exit(1); while (t->nodireito!= NULL) t = t->nodireito; // procurar subarvore direita return t->valor; // procurar um elemento bool BinarySearchTree::procurar(int x) { TreePointer t=root; while (t!= NULL && t->valor!= x) if(x < t->valor) t = t->noesquerdo; // procurar subarvore esquerda else t = t->nodireito; // procurar subarvore direita return (t!= NULL); // inserir um item void BinarySearchTree::inserir(int x) { TreePointer p=null, q=root, r; while (q!= NULL) { p = q; if(x < q->valor) q = q->noesquerdo; else q = q->nodireito; r = new TreeNode; r->valor = x;

9 r->noesquerdo = NULL; / Árvores de busca / 9 r->nodireito = NULL; if(p == NULL) root = r; // arvore vazia else if(x < p->valor) p->noesquerdo = r; else p->nodireito = r; // excluir um item void BinarySearchTree::excluir(int x) { excluir(x,root); // imprimir o conteudo void BinarySearchTree::imprimir() { imprimir(root, 0); // imprimir o conteudo void BinarySearchTree::imprimir(TreePointer &t, int level) { int i; if(t!= NULL) { imprimir(t->noesquerdo, level + 3); for(i = 1; i <= level; i++) cout << " "; // espacos cout << setw(6) << t->valor << endl; imprimir(t->nodireito, level + 3); // excluir um item

10 / Árvores de busca / 10 void BinarySearchTree::excluir(int x, TreePointer &p) { TreePointer q; if(p == NULL) { cout << "Elemento inexistente"; abort(); if(x < p->valor) excluir(x,p->noesquerdo); else if(x > p->valor) excluir(x,p->nodireito); else { // remover p-> q = p; if(q->nodireito == NULL) p = q->noesquerdo; else if(q->noesquerdo == NULL) p = q->nodireito; else excluirmenor(q, q->nodireito); delete q; // excluir um item void BinarySearchTree::excluirMenor(TreePointer &q, TreePointer &r) { if(r->noesquerdo!= NULL) excluirmenor(q,r->noesquerdo); else {

11 q->valor = r->valor; / Árvores de busca / 11 q = r; r = r->nodireito; main.cpp #include <iostream> #include "arvore.h" using namespace std; int main() { BinarySearchTree tree; tree.inserir(10); tree.inserir(2); tree.inserir(3); tree.inserir(11); tree.inserir(4); tree.inserir(1); tree.inserir(15); tree.inserir(5); tree.excluir(11); tree.inserir(9); tree.excluir(4); tree.inserir(14); tree.imprimir(); if (tree.procurar(5)) cout << "Encontrou" << endl; else cout << "Nao encontrou" << endl; cout << "Menor elemento: " << tree.minimo() << endl;

12 cout << "Maior elemento: " << tree.maximo() << endl; / Árvores de busca / 12 return 0; Árvores de busca balanceadas Árvore binária balanceada: uma árvore binária é dita balanceada se: o número de nós das sub-árvores esquerda difere no máximo de 1 do número de nós da sub-árvore direita. os sub-árvores esquerda e direita são balanceadas. Propriedade: a altura de uma árvore binária balanceada com n nós é igual a log2n+1 Árvores AVL Árvore binária de busca auto balanceável Autores: Adelson-Vesky e Landis (1962) Idéia básica: cada nó mantém uma informação adicional, chamada fator de balanceamento, que indica a diferença de altura entre as sub-árvores esquerda e direita. As operações de inserção e remoção mantém o fator de balanceamento entre -1 e +1. Embora não sejam perfeitamente balanceadas, é possível demonstrar que a altura de uma árvore AVL ainda é proporcional a log2n (~ 1.5* log2n). Nas operações de inserção e remoção de elementos, o balanceamento da árvore resultante é ajustado através da operação de rotação, que preserva a ordenação da árvore. As operações de inserção e remoção de nós numa árvore AVL, incluindo as eventuais operações de rotação, são realizadas em tempo proporcional a log 2 n. Rotação à esquerda void rotacaoesquerda(tnodeptr * t){ tnodeptr x = (*t); /*!= NULL */ tnodeptr y = x->dir; /*!= NULL */ x->dir = y->esq; if(y->esq!= NULL) (y->esq)->pai = x; y->pai = x->pai;

13 if(x->pai == NULL) *t = y; / Árvores de busca / 13 else if(x == (x->pai)->esq) (x->pai)->esq = y; else (x->pai)->dir = y; y->esq = x; x->pai = y; Rotação à direita void rotacaodireita(tnodeptr * t){ tnodeptr x = (*t); /*!= NULL */ tnodeptr y = x->esq; /*!= NULL */ x->esq = y->dir; if(y->dir!= NULL) (y->dir)->pai = x; y->pai = x->pai; if(x->pai == NULL) *t = y; else if(x == (x->pai)->dir) (x->pai)->dir = y; else (x->pai)->esq = y; y->dir = x; x->pai = y;

14 / Árvores de busca / 14 Referências Internet Bibliografia CELES FILHO, Waldemar; Cerqueira, Renato; Rangel, José Lucas. Introdução a estrutura de dados: com técnicas de programação em C. Rio de Janeiro : Elsevier, a. Impressão. DROZDEK, Adam; tradução Luiz Sérgio de Castro Paiva. Estrutura de dados e algoritmos em C++. São Paulo: Cengage Learning, MANZANO, José Augusto N. G.; Oliveira, Jayr Figueiredo de. Algoritmos: lógica para desenvolvimento de programação de computadores. São Paulo : Érica, SAVITCH, Walter. C++ absoluto. São Paulo: Addison Wesley, SILVA FILHO, Antônio Mendes da. Introdução à programação orientada a objetos com C++. Rio de Janeiro : Elsevier, SZWARCFITER, L. J.e MARKENZON, L. Estrutura de Dados e Seus Algoritmos. Rio de Janeiro: LTC - Livros Técnicos e Científicos, edição revista. Cap TENENBAUM, Aaron M.; LANGSAM, Yedidyah; AUGENSTEIN, Moshe J.; tradução Teresa Cristina Félix de Souza. Estruturas de dados usando C. São Paulo : MAKRON Books, Cap. 7. VELOSO, P; SANTOS, C; AZEREDO, P e FURTADO, A. Estrutura de Dados. Rio de Janeiro: Campus, WIRTH, N. Algoritmos e Estrutura de Dados. Rio de Janeiro: LTC - Livros Técnicos e Científicos, edição revista.

Árvores Binárias de Busca

Á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

Leia mais

CHAPTER ONE. Uma árvore B de ordem "m" (máximo de filhos para cada nó) é uma árvore que atende as seguintes propriedades:

CHAPTER ONE. Uma árvore B de ordem m (máximo de filhos para cada nó) é uma árvore que atende as seguintes propriedades: / EDOA / 1 CHAPTER ONE B-Tree Uma B-tree, ou bárvore, é uma árvore de busca equilibrada, desenhada para ter um bom desempenho em dispositivos de memória secundária de acesso direto pois elas minimizam

Leia mais

Algoritmos e Estrutura de Dados II. Árvore AVL. Prof Márcio Bueno. / Material da Prof a Ana Eliza

Algoritmos e Estrutura de Dados II. Árvore AVL. Prof Márcio Bueno. / Material da Prof a Ana Eliza Algoritmos e Estrutura de Dados II Árvore AVL Prof Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Material da Prof a Ana Eliza Árvores Binárias de Busca Objetivo da Utilização Minimizar

Leia mais

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

Leia mais

Árvores AVL. Nesta aula será apresentado o ADT árvore AVL que são árvores binárias de altura equilibrada. Algoritmos e Estruturas de Dados I

Árvores AVL. Nesta aula será apresentado o ADT árvore AVL que são árvores binárias de altura equilibrada. Algoritmos e Estruturas de Dados I Árvores AVL Nesta aula será apresentado o ADT árvore AVL que são árvores binárias de altura equilibrada Algoritmos e Estruturas de Dados I José Augusto Baranauskas Departamento de Física e Matemática FFCLRP-USP

Leia mais

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. Fonte: Prof a Ana Eliza Algoritmos e Estrutura de Dados II Árvore AVL Prof a Karina Oliveira kkco@dei.unicap.br Fonte: Prof a Ana Eliza Árvores Binárias de Busca Objetivo da Utilização Minimizar o número de comparações efetuadas,

Leia mais

Árvores Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação

Á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

Leia mais

Árvores AVL e Árvores B. Jeane Melo

Á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

Leia mais

DAINF - Departamento de Informática

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.

Leia mais

ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior

ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior Árvore Binária de Busca (ABB) o valor associado à raiz é sempre maior que o valor associado a qualquer nó da sub-árvore à esquerda

Leia mais

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

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

Leia mais

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

Leia mais

Árvores binárias de busca

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

Leia mais

Estruturas de Dados. 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 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)

Leia mais

Árvores Binárias de Busca

Á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

Leia mais

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

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

Leia mais

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

Algoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira. Algoritmos e Estrutura de Dados II Árvore Prof a Karina Oliveira kkco@dei.unicap.br Introdução Estruturas de dados lineares (pilha, fila) são estruturas que guardam coleções de elementos que são acessados

Leia mais

Árvores Binárias de Busca

Á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 paulovic@icmc.usp.br Instituto

Leia mais

Árvore binária - definição

Árvore binária - definição Árvore binária - definição árvore binária: conjunto finito de nós Æ (árvore vazia) {raiz, sub-árvore esquerda, sub-árvore direita}, onde sae e sad são conjuntos disjuntos Æ ou raiz /* nó da árvore binária

Leia mais

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

Leia mais

Estruturas de Dados. Árvores. Onde Estamos? Introdução à estrutura de dados. Alocação dinâmica de memória. Pilhas. Filas.

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 mais

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

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Árvores (parte 3) Estruturas de Dados 2 Organização dos dados: Linear: Listas, pilhas, filas. Relação sequencial.

Leia mais

UFJF - DCC - Estrutura de Dados e Laboratório de Programação II

UFJF - DCC - Estrutura de Dados e Laboratório de Programação II UFJF - DCC - Estrutura de Dados e Laboratório de Programação II Árvore Binária (AB) 1. Considerar os tipos abstratos de dados definidos a seguir. Para o nó de uma árvore binária de números inteiros: class

Leia mais

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura Árvores B Prof. Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Fonte: Material da Prof a Ana Eliza Lopes Moura Situação Problema Memória Principal Volátil e limitada Aplicações Grandes

Leia mais

ESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres

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

Leia mais

Árvores. Algoritmos e Estruturas de Dados I. José Augusto Baranauskas Departamento de Física e Matemática FFCLRP-USP

Á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

Leia mais

Árvores binárias de busca

Á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

Leia mais

Universidade Federal de Mato Grosso Estrutura de Dados II

Universidade Federal de Mato Grosso Estrutura de Dados II Universidade Federal de Mato Grosso Estrutura de Dados II Curso de Ciência da Computação Prof. Thiago P. da Silva thiagosilva@ufmt.br Agenda Definições Fator de Balanceamento Estrutura de um Nó Operações

Leia mais

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

Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Listas Estáticas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de

Leia mais

Programação de Computadores II. Cap. 17 Busca

Programação de Computadores II. Cap. 17 Busca Programação de Computadores II Cap. 17 Busca Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais dos profs.:

Leia mais

Classificação e Pesquisa

Classificaçã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 mais

INF 1010 Estruturas de Dados Avançadas. Árvores binárias

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

Leia mais

Pesquisa Linear. Adriano J. Holanda 15/3/2016

Pesquisa Linear. Adriano J. Holanda 15/3/2016 Pesquisa Linear Adriano J. Holanda 15/3/2016 Busca Linear em memória principal Introdução O dados estarão sempre armazenados na memória principal (DRAM 1 ): não há necessidade de acesso à memória secundária

Leia mais

Árvore Binária de Busca. Prof. César Melo

Á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

Leia mais

Árvores Binárias de Busca

Á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

Leia mais

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

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

Leia mais

Listas Lineares Ordenadas

Listas Lineares Ordenadas Listas Lineares Ordenadas Algoritmos e Estruturas de Dados I Nesta apresentação será apresentado o ADT lista linear ordenada Uma lista linear ordenada, ou simplesmente lista ordenada há uma ordem entre

Leia mais

Árvores Binárias Balanceadas Estrutura de Dados I

Á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 marcelo.aguiar@ufes.br

Leia mais

Heaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35

Heaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Heaps Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Introdução Definição de Heap Heap Binária Implementação com vetor Fila de Prioridades

Leia mais

Árvores Binária de Busca. Prof. César Melo DCC/ICE/UFAM

Á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

Leia mais

ÁRVORE BINÁRIA DE BUSCA

Á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

Leia mais

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

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Árvores (parte 4) Estruturas de Dados 2 Organização dos dados: Linear: Listas, pilhas, filas. Relação sequencial.

Leia mais

Módulo 9. Pesquisa em Memória Primária. Algoritmos e Estruturas de Dados II C++ (Rone Ilídio)

Módulo 9. Pesquisa em Memória Primária. Algoritmos e Estruturas de Dados II C++ (Rone Ilídio) Módulo 9 Pesquisa em Memória Primária Algoritmos e Estruturas de Dados II C++ (Rone Ilídio) Árvore Binária Estrutura baseada em ponteiros Os elementos são chamados nós Cada nó é ligado a, 1 ou 2 elementos

Leia mais

Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes

Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes Árvores Fabrício J. Barth BandTec - Faculdade de Tecnologia Bandeirantes Setembro de 2011 Tópicos Introdução Árvores binárias Implementação em Java Ordens de percurso em árvores binárias Altura de uma

Leia mais

Árvores Binárias de Busca

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

Leia mais

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

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

Leia mais

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

Á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

Leia mais

Aula 16: Pesquisa em Memória Primária - Árvores de Busca. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP

Aula 16: Pesquisa em Memória Primária - Árvores de Busca. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Aula 16: Pesquisa em Memória Primária - Árvores de Busca Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Árvores de Pesquisa A árvore de pesquisa é uma estrutura de dados muito eficiente para

Leia mais

Pesquisa em Memória Primária Árvores de Busca. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Pesquisa em Memória Primária Árvores de Busca. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Pesquisa em Memória Primária Árvores de Busca David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Árvores de Pesquisa A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar

Leia mais

AED2 - Aulas 06 e 07 Árvores AVL e rubro-negras

AED2 - Aulas 06 e 07 Árvores AVL e rubro-negras AED2 - Aulas 06 e 07 Árvores AVL e rubro-negras Árvores AVL AVL vem dos nomes dos seus inventores: Adelson-Velsky and Landis. Definições: a altura de uma subárvore é o comprimento do caminho mais longo

Leia mais

Linguagem C: Árvores AVL

Linguagem C: Árvores AVL Instituto de C Linguagem C: Árvores AVL Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Árvores Balanceadas As árvores binárias de pesquisa são,

Leia mais

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

Á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

Leia mais

ESTRUTURA DE DADOS DCC013. Árvore Binária de Busca

ESTRUTURA DE DADOS DCC013. Árvore Binária de Busca ESTRUTURA DE DADOS DCC013 Árvore Binária de Busca Árvore Binária de Busca Propriedade fundamental da árvore binária de busca Valor da chave da raiz é Maior do que o valor da chave da subárvore da esquerda

Leia mais

ÁRVORES. Prof. Yan ndre Maldonado - 1. Prof. Yandre Maldonado e Gomes da Costa

ÁRVORES. Prof. Yan ndre Maldonado - 1. Prof. Yandre Maldonado e Gomes da Costa ÁRVORES Prof. Yan ndre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa Árvores Prof. Yan ndre Maldonado - 2 Árvores são estruturas de dados que caracterizam uma relação entre os dados que a compõem;

Leia mais

Prof. Jesus José de Oliveira Neto

Prof. Jesus José de Oliveira Neto Prof. Jesus José de Oliveira Neto São estruturas de dados adequadas para a representação de hierarquias. Uma árvore é composta por um conjunto de nós. Existe um nó r, denominado raiz, que contém zero ou

Leia mais

Árvores AVL IAED, 2014/2015

Árvores AVL IAED, 2014/2015 Árvores AVL IAED, 24/25 Resumo da aula de hoje Recapitular algumas ideias da última aula Pesquisa, inserção, remoção & travessias em árvores binárias de pesquisa. Árvores binárias equilibradas Exemplo:

Leia mais

Algoritmos e Estruturas de Dados I. Aula 11 Árvores AVL. Prof. Jesús P. Mena-Chalco.

Algoritmos e Estruturas de Dados I. Aula 11 Árvores AVL. Prof. Jesús P. Mena-Chalco. Algoritmos e Estruturas de Dados I Aula 11 Árvores AVL Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 1Q-2019 1 Sobre a altura de uma ABB 2 Altura de uma ABB 4 2 1 6 3 5 7 Uma árvore de 7 elementos

Leia mais

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

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Árvores (parte 2) Estruturas de Dados 2 Organização dos dados: Linear: Listas, pilhas, filas. Relação sequencial.

Leia mais

Árvores binárias de busca

Árvores binárias de busca Árvores binárias de busca S-202 lgoritmos e Estruturas de Dados I Prof. Thiago. S. Pardo Árvore binárias Árvores de grau 2, isto é, cada nó tem dois filhos, no máximo Raiz D B E Terminologia: filho esquerdo

Leia mais

Árvores Binárias. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich

Á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

Leia mais

Árvore Binária Exemplo de Implementação

Árvore Binária Exemplo de Implementação Estrutura de Dados Árvore Binária Exemplo de Implementação Prof. Pedro Luís Antonelli Anhanguera Educacional Lista Encadeada - Exemplo Exemplo de código para a implementação de uma árvore binária encadeada

Leia mais

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

Listas Estáticas. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista Listas Estáticas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de

Leia mais

Árvores Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação

Á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 Conteúdo 2 Árvores Definições Conceitos Algoritmos Árvore Binária Implementação Algoritmos Árvore

Leia mais

Árvores & Árvores Binárias

Á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

Leia mais

Pedro Vasconcelos DCC/FCUP. Programação Funcional 16 a Aula Árvores equilibradas

Pedro Vasconcelos DCC/FCUP. Programação Funcional 16 a Aula Árvores equilibradas Programação Funcional 16 a Aula Árvores equilibradas Pedro Vasconcelos DCC/FCUP 2014 Aula anterior Operações sobre árvores binárias ordenadas: 1 pesquisa; 2 inserção; 3 remoção. Estas operações são mais

Leia mais

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

Leia mais

Árvore B. Uma Árvore B de ordem m éumaárvore,talque: Cada nó contém no máximo m

Árvore B. Uma Árvore B de ordem m éumaárvore,talque: Cada nó contém no máximo m Árvore B Uma Árvore B de ordem m éumaárvore,talque: Cada nó contém no máximo m 1valores; Os valores dentro de cada nó estão ordenados; Todos os valores na subárvore esquerda de um valor são menores que

Leia mais

Introdução a árvores AVL. Prof. Ernesto Lindstaedt

Introdução a árvores AVL. Prof. Ernesto Lindstaedt Introdução a árvores AVL Prof. Ernesto Lindstaedt Definição O nome AVL vem dos seus criadores Adelson Velsky e Landis (1962); Uma ABP T é denominada AVL se: Para todos nós de T,, as alturas de suas duas

Leia mais

AED2 - Aula 04 Vetores ordenados e árvores de busca

AED2 - Aula 04 Vetores ordenados e árvores de busca AED2 - Aula 04 Vetores ordenados e árvores de busca Considere um vetor ordenado v de tamanho n. Ele suporta as seguintes operações: busca - dada uma chave k, devolva um apontador para um objeto com esta

Leia mais

ALGORITMOS AVANÇADOS. UNIDADE V Estruturas de dados dos tipos Árvore Binária e Árvore AVL. Luiz Leã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 luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 5.1 - Árvores, Árvores Binárias e Árvores Binárias de Busca

Leia mais

Estrutura de Dados. Ricardo José Cabeça de Souza Parte 9

Estrutura de Dados. Ricardo José Cabeça de Souza  Parte 9 Estrutura de Dados Ricardo José Cabeça de Souza www.ricardojcsouza.com.br Parte 9 VETOR Ao declararmos um vetor, reservamos um espaço contíguo de memória para armazenar seus elementos Vetor não é uma estrutura

Leia mais

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

Leia mais

INF1007: Programação 2 7 Busca em Vetores. 01/04/2014 (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2 7 Busca em Vetores. 01/04/2014 (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 7 Busca em Vetores 01/04/2014 (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Busca em vetor Busca linear Busca binária 01/04/2014 (c) Dept. Informática - PUC-Rio 2 Busca em

Leia mais

Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária. Túlio Toffolo

Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária. Túlio Toffolo Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária Túlio Toffolo www.decom.ufop.br/toffolo Pesquisa em Memória Primária n Introdução - Conceitos Básicos n Pesquisa Sequencial n Pesquisa Binária n Árvores

Leia mais

ÁRVORES BALANCEADAS (AVL)

ÁRVORES BALANCEADAS (AVL) ÁRORES BALANCEADAS (AL) PALO JOSÉ DA SILA E SILA 1. Árvores balanceadas Como já vimos anteriormente, o uso de árvores binárias de busca sem a preocupação com seu balanceamento pode levar a um aumento de

Leia mais

GGI026 - Árvore rubro-negra

GGI026 - Árvore rubro-negra GGI026 - Árvore rubro-negra Marcelo K. Albertini 11 de Setembro de 2013 2/1 Aula de hoje Nesta aula veremos Árvores rubro-negras 3/1 Árvore rubro-negra Propriedades: 33 1 - Todo nó é vermelho ou preto

Leia mais

Fontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros:

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

Leia mais

EAD Árvore - representação usando listas ligadas

EAD Árvore - representação usando listas ligadas 5.1. Definição - A pesquisa de um elemento numa árvore binária de pesquisa implica - fazer uma travessia da árvore até se encontrar o elemento procurado, ou - se concluir da sua inexistência. - As travessias

Leia mais

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

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

Leia mais

Estruturas de Dados. Aula 08. Árvores AVL II. Karina Mochetti

Estruturas de Dados. Aula 08. Árvores AVL II. Karina Mochetti Estruturas de Dados 2018.2 Árvore AVL Uma Árvore AVL (Adelson, Velskii e Landis) T é uma Árvore Binária de Busca Balanceada, tal que: T é vazia; T consiste de um nó raiz k e duas subárvores binárias Te

Leia mais

ÁRVORE BINÁRIA DE BUSCA TDA-ABB

Á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,

Leia mais

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 4: Listas Estáticas e Dinâmicas

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 4: Listas Estáticas e Dinâmicas Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 4: Listas Estáticas e Dinâmicas Listas Estáticas: com Vetores Dinâmicas: Listas Ligadas (com ponteiros) Variáveis e Métodos de Controle:

Leia mais

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

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

Leia mais

Linguagem Haskell. Maria Adriana Vidigal de Lima

Linguagem Haskell. Maria Adriana Vidigal de Lima em Haskell Linguagem Haskell Faculdade de Computação - UFU Dezembro - 2009 em Haskell 1 em Haskell Noções sobre Fundamentos em Haskell Noções sobre Uma árvore é uma estrutura de dados baseada em listas

Leia mais

ÁRVORE B. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

ÁRVORE B. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ÁRVORE B Vanessa Braganholo Estruturas de Dados e Seus Algoritmos INTRODUÇÃO 2 ARQUIVOS DE ACESSO DIRETO Basicamente, duas formas de acesso a um registro: Acesso via cálculo do endereço do registro (hashing)

Leia mais

Árvores. Prof. César Melo ICOMP/UFAM

Árvores. Prof. César Melo ICOMP/UFAM Árvores Prof. César Melo ICOMP/UFAM Introdução v Árvore é uma estrutura adequada para representar hierarquias Diretórios em um computador Serviço de resolução de nomes na Internet v A forma mais natural

Leia mais

Estrutura de Dados. Ricardo José Cabeça de Souza Parte 4

Estrutura de Dados. Ricardo José Cabeça de Souza   Parte 4 Estrutura de Dados Ricardo José Cabeça de Souza www.ricardojcsouza.com.br Parte 4 As funções dividem grandes tarefas de computação em tarefas menores Criação de funções evita a repetição de código Exemplo

Leia mais

Aula 08. Estruturas de dados Árvore e Grafo

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

Leia mais

Árvores Binárias. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io)

Árvores Binárias. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io) Árvores Binárias Algoritmos e Estruturas de Dados 2 201-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Árvores 2 Raíz 3 Folhas 4 Nós Internos 5 Pais e Filhos 6 Descendentes Ancestrais 8 Irmãos 9 Níveis

Leia mais

GGI026 - Árvore rubro-negra - Remoção

GGI026 - Árvore rubro-negra - Remoção GGI026 - Árvore rubro-negra - Remoção Marcelo K. Albertini 11 de Setembro de 2013 2/28 Aula de hoje Nesta aula veremos Remoção em Árvores rubro-negras 3/28 Remoção em árvores rubro-negras Metodologia Possibilidade

Leia mais

Árvores & Árvores Binárias

Árvores & Árvores Binárias SCE 182 SCC122 Algoritmos Estruturas e Estruturas de Dados de Dados I Árvores & Árvores Binárias Prof. Material Original: Walter Aoiama Nagai; Maria das Graças Volpe Nunes; Definições Árvore T é um conjunto

Leia mais

Estrutura de Dados II. Prof. Sérgio Portari

Estrutura de Dados II. Prof. Sérgio Portari Estrutura de Dados II Prof. Sérgio Portari - 2016 Plano de Ensino EMENTA: Filas, Árvores e suas generalizações: árvores binárias, árvores de busca, árvores balanceadas, árvores B e B+. Aplicações de árvores

Leia mais

Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP

Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Árvores Binárias Árvores Árvores representam estruturas de dados caracterizadas por uma relação hierárquica da informação:

Leia mais

Aula 15: Pesquisa em Memória Primária. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP

Aula 15: Pesquisa em Memória Primária. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Aula 15: Pesquisa em Memória Primária Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Pesquisa em Memória Primária Introdução - Conceitos Básicos Pesquisa Sequencial Pesquisa Binária Árvores de

Leia mais

Árvores. Estruturas de Dados. Prof. Vilson Heck Junior

Á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

Leia mais

Árvores de Pesquisa (Parte I)

Árvores de Pesquisa (Parte I) Baseado no material do Prof. Reinaldo Fortes para o curso de 2014-01 Arquivo original: 21._arvores_(parte_1) Árvores de Pesquisa (Parte I) Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Algoritmos

Leia mais

Instituto de C. Linguagem C: Listas. Luis Martí Instituto de Computação Universidade Federal Fluminense -

Instituto de C. Linguagem C: Listas. Luis Martí Instituto de Computação Universidade Federal Fluminense - Instituto de C Linguagem C: Listas Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Listas Encadeadas Definição Funções básicas Tópicos Principais

Leia mais

Aula 10 Árvores Adelson-Velskii e Landis

Aula 10 Árvores Adelson-Velskii e Landis MC3305 Algoritmos e Estruturas de Dados II Aula 10 Árvores Adelson-Velskii e Landis Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 2Q-2014 1 Árvores balanceadas 2 Árvores balanceadas As ABB permitem

Leia mais