Balanced Binary Trees

65
Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação Árvore Binária Balanceada Visão Geral, Características e Conceitos Associados Michel Alves dos Santos Universidade Federal de Alagoas, Campus A. C. Simões Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 Centro de Pesquisa em Matemática Computacional Docente Responsável: Prof. Dr. Thales Vieira 17 de Novembro 2011 Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

description

A balanced binary tree is commonly defined as a binary tree in which the depth of the left and right subtrees of every node differ by 1 or less, although in general it is a binary tree where no leaf is much farther away from the root than any other leaf.

Transcript of Balanced Binary Trees

Page 1: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Árvore Binária BalanceadaVisão Geral, Características e Conceitos Associados

Michel Alves dos Santos

Universidade Federal de Alagoas, Campus A. C. SimõesTabuleiro do Martins - Maceió - AL, CEP: 57072-970Centro de Pesquisa em Matemática Computacional

Docente Responsável: Prof. Dr. Thales Vieira

17 de Novembro 2011

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 2: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Sumário

Tópicos Centrais da Explanação• Árvores, Arborescências e Árvore Balanceada;• Aplicações da Árvore Binária Balanceada;• Complexidade: Busca, Inserção e Deleção;• Uso em Problemas Práticos;• As Proto-classes Node e BinaryTree;• Comparações Entre Árvores;• Conclusões.

Primeiramente iremos esclarecer alguns conceitos primordiais sobrea caracterização de uma árvore e logo após iremos definir

realmente o significado do nosso objeto de estudo.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 3: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Sumário

Tópicos Centrais da Explanação• Árvores, Arborescências e Árvore Balanceada;• Aplicações da Árvore Binária Balanceada;• Complexidade: Busca, Inserção e Deleção;• Uso em Problemas Práticos;• As Proto-classes Node e BinaryTree;• Comparações Entre Árvores;• Conclusões.

Primeiramente iremos esclarecer alguns conceitos primordiais sobrea caracterização de uma árvore e logo após iremos definir

realmente o significado do nosso objeto de estudo.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 4: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Sumário

Tópicos Centrais da Explanação• Árvores, Arborescências e Árvore Balanceada;• Aplicações da Árvore Binária Balanceada;• Complexidade: Busca, Inserção e Deleção;• Uso em Problemas Práticos;• As Proto-classes Node e BinaryTree;• Comparações Entre Árvores;• Conclusões.

Primeiramente iremos esclarecer alguns conceitos primordiais sobrea caracterização de uma árvore e logo após iremos definir

realmente o significado do nosso objeto de estudo.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 5: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Sumário

Tópicos Centrais da Explanação• Árvores, Arborescências e Árvore Balanceada;• Aplicações da Árvore Binária Balanceada;• Complexidade: Busca, Inserção e Deleção;• Uso em Problemas Práticos;• As Proto-classes Node e BinaryTree;• Comparações Entre Árvores;• Conclusões.

Primeiramente iremos esclarecer alguns conceitos primordiais sobrea caracterização de uma árvore e logo após iremos definir

realmente o significado do nosso objeto de estudo.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 6: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Sumário

Tópicos Centrais da Explanação• Árvores, Arborescências e Árvore Balanceada;• Aplicações da Árvore Binária Balanceada;• Complexidade: Busca, Inserção e Deleção;• Uso em Problemas Práticos;• As Proto-classes Node e BinaryTree;• Comparações Entre Árvores;• Conclusões.

Primeiramente iremos esclarecer alguns conceitos primordiais sobrea caracterização de uma árvore e logo após iremos definir

realmente o significado do nosso objeto de estudo.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 7: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Sumário

Tópicos Centrais da Explanação• Árvores, Arborescências e Árvore Balanceada;• Aplicações da Árvore Binária Balanceada;• Complexidade: Busca, Inserção e Deleção;• Uso em Problemas Práticos;• As Proto-classes Node e BinaryTree;• Comparações Entre Árvores;• Conclusões.

Primeiramente iremos esclarecer alguns conceitos primordiais sobrea caracterização de uma árvore e logo após iremos definir

realmente o significado do nosso objeto de estudo.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 8: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Sumário

Tópicos Centrais da Explanação• Árvores, Arborescências e Árvore Balanceada;• Aplicações da Árvore Binária Balanceada;• Complexidade: Busca, Inserção e Deleção;• Uso em Problemas Práticos;• As Proto-classes Node e BinaryTree;• Comparações Entre Árvores;• Conclusões.

Primeiramente iremos esclarecer alguns conceitos primordiais sobrea caracterização de uma árvore e logo após iremos definir

realmente o significado do nosso objeto de estudo.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 9: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Sumário

Tópicos Centrais da Explanação• Árvores, Arborescências e Árvore Balanceada;• Aplicações da Árvore Binária Balanceada;• Complexidade: Busca, Inserção e Deleção;• Uso em Problemas Práticos;• As Proto-classes Node e BinaryTree;• Comparações Entre Árvores;• Conclusões.

Primeiramente iremos esclarecer alguns conceitos primordiais sobrea caracterização de uma árvore e logo após iremos definir

realmente o significado do nosso objeto de estudo.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 10: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Sumário

Tópicos Centrais da Explanação• Árvores, Arborescências e Árvore Balanceada;• Aplicações da Árvore Binária Balanceada;• Complexidade: Busca, Inserção e Deleção;• Uso em Problemas Práticos;• As Proto-classes Node e BinaryTree;• Comparações Entre Árvores;• Conclusões.

Primeiramente iremos esclarecer alguns conceitos primordiais sobrea caracterização de uma árvore e logo após iremos definir

realmente o significado do nosso objeto de estudo.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 11: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

O que é uma Árvore?

Conceito Matemático de ÁrvoreUma árvore é um grafo conexo e sem ciclos.

Figura: Construção de um grafo conexo com 6 vértices. Há várias soluções paraeste tipo de construção, mas o que as soluções apresentadas possuem em comum?Todas tem 5 arestas e nenhuma contém ciclos.

LembreteGrafo constitui um objeto matemático formado por dois conjuntos. O primeiro,

chamado de V , é o conjunto dos vértices. O outro é um conjunto de relações entrevértices, chamado de conjunto das arestas e é representado por E .

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 12: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

O que é uma Árvore?

Conceito Matemático de ÁrvoreUma árvore é um grafo conexo e sem ciclos.

Figura: Construção de um grafo conexo com 6 vértices. Há várias soluções paraeste tipo de construção, mas o que as soluções apresentadas possuem em comum?Todas tem 5 arestas e nenhuma contém ciclos.

LembreteGrafo constitui um objeto matemático formado por dois conjuntos. O primeiro,

chamado de V , é o conjunto dos vértices. O outro é um conjunto de relações entrevértices, chamado de conjunto das arestas e é representado por E .

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 13: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

O que é uma Árvore?

Conceito Matemático de ÁrvoreUma árvore é um grafo conexo e sem ciclos.

Figura: Construção de um grafo conexo com 6 vértices. Há várias soluções paraeste tipo de construção, mas o que as soluções apresentadas possuem em comum?Todas tem 5 arestas e nenhuma contém ciclos.

LembreteGrafo constitui um objeto matemático formado por dois conjuntos. O primeiro,

chamado de V , é o conjunto dos vértices. O outro é um conjunto de relações entrevértices, chamado de conjunto das arestas e é representado por E .

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 14: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Caracterização das Árvores.

Como podemos caracterizar uma árvore?Três características são primordiais em uma árvore:

Figura: Construção de um grafo conexo e um não-conexo com 6 vértices.

Seja T uma árvore com n vértices. Então:1 T é conexo e sem ciclos;2 T é conexo e possui n − 1 arestas;3 Cada aresta e de T é uma ponte.

LembreteUma ponte é uma aresta cuja retirada desconecta o grafo.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 15: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Caracterização das Árvores.

Como podemos caracterizar uma árvore?Três características são primordiais em uma árvore:

Figura: Construção de um grafo conexo e um não-conexo com 6 vértices.

Seja T uma árvore com n vértices. Então:1 T é conexo e sem ciclos;2 T é conexo e possui n − 1 arestas;3 Cada aresta e de T é uma ponte.

LembreteUma ponte é uma aresta cuja retirada desconecta o grafo.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 16: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Caracterização das Árvores.

Como podemos caracterizar uma árvore?Três características são primordiais em uma árvore:

Figura: Construção de um grafo conexo e um não-conexo com 6 vértices.

Seja T uma árvore com n vértices. Então:1 T é conexo e sem ciclos;2 T é conexo e possui n − 1 arestas;3 Cada aresta e de T é uma ponte.

LembreteUma ponte é uma aresta cuja retirada desconecta o grafo.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 17: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Caracterização das Árvores.

Como podemos caracterizar uma árvore?Três características são primordiais em uma árvore:

Figura: Construção de um grafo conexo e um não-conexo com 6 vértices.

Seja T uma árvore com n vértices. Então:1 T é conexo e sem ciclos;2 T é conexo e possui n − 1 arestas;3 Cada aresta e de T é uma ponte.

LembreteUma ponte é uma aresta cuja retirada desconecta o grafo.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 18: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Caracterização das Árvores.

Como podemos caracterizar uma árvore?Três características são primordiais em uma árvore:

Figura: Construção de um grafo conexo e um não-conexo com 6 vértices.

Seja T uma árvore com n vértices. Então:1 T é conexo e sem ciclos;2 T é conexo e possui n − 1 arestas;3 Cada aresta e de T é uma ponte.

LembreteUma ponte é uma aresta cuja retirada desconecta o grafo.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 19: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Caracterização das Árvores.

Como podemos caracterizar uma árvore?Três características são primordiais em uma árvore:

Figura: Construção de um grafo conexo e um não-conexo com 6 vértices.

Seja T uma árvore com n vértices. Então:1 T é conexo e sem ciclos;2 T é conexo e possui n − 1 arestas;3 Cada aresta e de T é uma ponte.

LembreteUma ponte é uma aresta cuja retirada desconecta o grafo.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 20: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Caracterização das Árvores.

Como podemos caracterizar uma árvore?Três características são primordiais em uma árvore:

Figura: Construção de um grafo conexo e um não-conexo com 6 vértices.

Seja T uma árvore com n vértices. Então:1 T é conexo e sem ciclos;2 T é conexo e possui n − 1 arestas;3 Cada aresta e de T é uma ponte.

LembreteUma ponte é uma aresta cuja retirada desconecta o grafo.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 21: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Arborescências.

O que é uma arborescência?Tipo de árvore na qual consideramos a orientação. Na arborescência, a

direção dos arcos é considerada.

Figura: Como cada aresta da arborescência representa uma ponte, basta escolherum vértice como ‘raiz’ e teremos uma orientação ‘natural’ da árvore.

Propriedades das arborescências:1 Existe um vértice sem antecessores (a raiz);2 Todos os vértices (fora a raiz) possuem exatamente um único antecessor.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 22: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Arborescências.

O que é uma arborescência?Tipo de árvore na qual consideramos a orientação. Na arborescência, a

direção dos arcos é considerada.

Figura: Como cada aresta da arborescência representa uma ponte, basta escolherum vértice como ‘raiz’ e teremos uma orientação ‘natural’ da árvore.

Propriedades das arborescências:1 Existe um vértice sem antecessores (a raiz);2 Todos os vértices (fora a raiz) possuem exatamente um único antecessor.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 23: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Arborescências.

O que é uma arborescência?Tipo de árvore na qual consideramos a orientação. Na arborescência, a

direção dos arcos é considerada.

Figura: Como cada aresta da arborescência representa uma ponte, basta escolherum vértice como ‘raiz’ e teremos uma orientação ‘natural’ da árvore.

Propriedades das arborescências:1 Existe um vértice sem antecessores (a raiz);2 Todos os vértices (fora a raiz) possuem exatamente um único antecessor.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 24: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Arborescências.

O que é uma arborescência?Tipo de árvore na qual consideramos a orientação. Na arborescência, a

direção dos arcos é considerada.

Figura: Como cada aresta da arborescência representa uma ponte, basta escolherum vértice como ‘raiz’ e teremos uma orientação ‘natural’ da árvore.

Propriedades das arborescências:1 Existe um vértice sem antecessores (a raiz);2 Todos os vértices (fora a raiz) possuem exatamente um único antecessor.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 25: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Arborescências.

O que é uma arborescência?Tipo de árvore na qual consideramos a orientação. Na arborescência, a

direção dos arcos é considerada.

Figura: Como cada aresta da arborescência representa uma ponte, basta escolherum vértice como ‘raiz’ e teremos uma orientação ‘natural’ da árvore.

Propriedades das arborescências:1 Existe um vértice sem antecessores (a raiz);2 Todos os vértices (fora a raiz) possuem exatamente um único antecessor.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 26: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Arborescência Binária.

O que é uma arborescência binária?Uma das arborescências de uso mais frequente é a arborescência binária(usualmente chamada de árvore binária), que se caracteriza pela seguinte

propriedade adicional:

Figura: Os nós de uma árvore binária possuem graus zero, um ou dois. Um nó degrau zero é denominado folha. A raiz possui profundidade 0. Os sucessores diretosda raiz possuem profundidade 1. Em suma, uma árvore binária é definida como umgrafo acíclico, conexo, dirigido e que cada nó não tem grau maior que 2. Logo, sóexiste um caminho entre dois nós distintos.

Propriedade adicional das arborescências binárias:1 Todos os vértices têm, no máximo, 2 sucessores, ou seja ∆ ≤ 2.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 27: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Arborescência Binária.

O que é uma arborescência binária?Uma das arborescências de uso mais frequente é a arborescência binária(usualmente chamada de árvore binária), que se caracteriza pela seguinte

propriedade adicional:

Figura: Os nós de uma árvore binária possuem graus zero, um ou dois. Um nó degrau zero é denominado folha. A raiz possui profundidade 0. Os sucessores diretosda raiz possuem profundidade 1. Em suma, uma árvore binária é definida como umgrafo acíclico, conexo, dirigido e que cada nó não tem grau maior que 2. Logo, sóexiste um caminho entre dois nós distintos.

Propriedade adicional das arborescências binárias:1 Todos os vértices têm, no máximo, 2 sucessores, ou seja ∆ ≤ 2.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 28: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Arborescência Binária.

O que é uma arborescência binária?Uma das arborescências de uso mais frequente é a arborescência binária(usualmente chamada de árvore binária), que se caracteriza pela seguinte

propriedade adicional:

Figura: Os nós de uma árvore binária possuem graus zero, um ou dois. Um nó degrau zero é denominado folha. A raiz possui profundidade 0. Os sucessores diretosda raiz possuem profundidade 1. Em suma, uma árvore binária é definida como umgrafo acíclico, conexo, dirigido e que cada nó não tem grau maior que 2. Logo, sóexiste um caminho entre dois nós distintos.

Propriedade adicional das arborescências binárias:1 Todos os vértices têm, no máximo, 2 sucessores, ou seja ∆ ≤ 2.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 29: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Arborescência Binária.

O que é uma arborescência binária?Uma das arborescências de uso mais frequente é a arborescência binária(usualmente chamada de árvore binária), que se caracteriza pela seguinte

propriedade adicional:

Figura: Os nós de uma árvore binária possuem graus zero, um ou dois. Um nó degrau zero é denominado folha. A raiz possui profundidade 0. Os sucessores diretosda raiz possuem profundidade 1. Em suma, uma árvore binária é definida como umgrafo acíclico, conexo, dirigido e que cada nó não tem grau maior que 2. Logo, sóexiste um caminho entre dois nós distintos.

Propriedade adicional das arborescências binárias:1 Todos os vértices têm, no máximo, 2 sucessores, ou seja ∆ ≤ 2.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 30: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Árvore Binária Balanceada.

Caracterizando Árvore Binária BalanceadaUma árvore binária é dita balanceada se, para cada nó, as alturas de suas

sub-árvores diferem de, no máximo 1.

Figura: Uma árvore é totalmente balanceada quando para cada nó, o número denós em cada uma de suas sub-árvores difere em no máximo 1 de profundidade. Aprimeira aparição dessa estrutura, foi em 1962 no artigo ‘An algorithm for theorganization of information’, de autoria dos Soviéticos Adelson-Velskii e Landis.

Uma árvore binária balanceada, chamada de árvore AVL (em homenagemaos matemáticos russos G.M. Adelson-Velskii e E.M. Landis), é uma

árvore binária na qual as alturas das duas sub-árvores de cada um dos nós,nunca diferem em mais de 1 unidade.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 31: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Árvore Binária Balanceada.

Caracterizando Árvore Binária BalanceadaUma árvore binária é dita balanceada se, para cada nó, as alturas de suas

sub-árvores diferem de, no máximo 1.

Figura: Uma árvore é totalmente balanceada quando para cada nó, o número denós em cada uma de suas sub-árvores difere em no máximo 1 de profundidade. Aprimeira aparição dessa estrutura, foi em 1962 no artigo ‘An algorithm for theorganization of information’, de autoria dos Soviéticos Adelson-Velskii e Landis.

Uma árvore binária balanceada, chamada de árvore AVL (em homenagemaos matemáticos russos G.M. Adelson-Velskii e E.M. Landis), é uma

árvore binária na qual as alturas das duas sub-árvores de cada um dos nós,nunca diferem em mais de 1 unidade.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 32: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Árvore Binária Balanceada.

Caracterizando Árvore Binária BalanceadaUma árvore binária é dita balanceada se, para cada nó, as alturas de suas

sub-árvores diferem de, no máximo 1.

Figura: Uma árvore é totalmente balanceada quando para cada nó, o número denós em cada uma de suas sub-árvores difere em no máximo 1 de profundidade. Aprimeira aparição dessa estrutura, foi em 1962 no artigo ‘An algorithm for theorganization of information’, de autoria dos Soviéticos Adelson-Velskii e Landis.

Uma árvore binária balanceada, chamada de árvore AVL (em homenagemaos matemáticos russos G.M. Adelson-Velskii e E.M. Landis), é uma

árvore binária na qual as alturas das duas sub-árvores de cada um dos nós,nunca diferem em mais de 1 unidade.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 33: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Árvore Binária Balanceada.

Aplicações da Árvore Binária Balanceada

Essa estrutura fornece implementação eficiente para listas ordenadas mutáveis:

• Arrays associativos (associative arrays: map ou dictionary);• Coleções baseadas em pares do tipo (key, value);

• Filas de prioridade (priority queues);• Fila onde cada elemento é associado com uma ‘prioridade’;

• Conjuntos (sets).• Comumente implementados da mesma maneira que arrays associativos;• Nessa caso são chamados de sorted sets.

Implementações

• AA Tree; AVL Tree; Red-black Tree; Scapegoat Tree; Splay Tree; Treap;

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 34: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Árvore Binária Balanceada.

Aplicações da Árvore Binária Balanceada

Essa estrutura fornece implementação eficiente para listas ordenadas mutáveis:

• Arrays associativos (associative arrays: map ou dictionary);• Coleções baseadas em pares do tipo (key, value);

• Filas de prioridade (priority queues);• Fila onde cada elemento é associado com uma ‘prioridade’;

• Conjuntos (sets).• Comumente implementados da mesma maneira que arrays associativos;• Nessa caso são chamados de sorted sets.

Implementações

• AA Tree; AVL Tree; Red-black Tree; Scapegoat Tree; Splay Tree; Treap;

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 35: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Árvore Binária Balanceada.

Aplicações da Árvore Binária Balanceada

Essa estrutura fornece implementação eficiente para listas ordenadas mutáveis:

• Arrays associativos (associative arrays: map ou dictionary);• Coleções baseadas em pares do tipo (key, value);

• Filas de prioridade (priority queues);• Fila onde cada elemento é associado com uma ‘prioridade’;

• Conjuntos (sets).• Comumente implementados da mesma maneira que arrays associativos;• Nessa caso são chamados de sorted sets.

Implementações

• AA Tree; AVL Tree; Red-black Tree; Scapegoat Tree; Splay Tree; Treap;

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 36: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Árvore Binária Balanceada.

Aplicações da Árvore Binária Balanceada

Essa estrutura fornece implementação eficiente para listas ordenadas mutáveis:

• Arrays associativos (associative arrays: map ou dictionary);• Coleções baseadas em pares do tipo (key, value);

• Filas de prioridade (priority queues);• Fila onde cada elemento é associado com uma ‘prioridade’;

• Conjuntos (sets).• Comumente implementados da mesma maneira que arrays associativos;• Nessa caso são chamados de sorted sets.

Implementações

• AA Tree; AVL Tree; Red-black Tree; Scapegoat Tree; Splay Tree; Treap;

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 37: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Árvore Binária Balanceada.

Aplicações da Árvore Binária Balanceada

Essa estrutura fornece implementação eficiente para listas ordenadas mutáveis:

• Arrays associativos (associative arrays: map ou dictionary);• Coleções baseadas em pares do tipo (key, value);

• Filas de prioridade (priority queues);• Fila onde cada elemento é associado com uma ‘prioridade’;

• Conjuntos (sets).• Comumente implementados da mesma maneira que arrays associativos;• Nessa caso são chamados de sorted sets.

Implementações

• AA Tree; AVL Tree; Red-black Tree; Scapegoat Tree; Splay Tree; Treap;

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 38: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Árvore Binária Balanceada.

Aplicações da Árvore Binária Balanceada

Essa estrutura fornece implementação eficiente para listas ordenadas mutáveis:

• Arrays associativos (associative arrays: map ou dictionary);• Coleções baseadas em pares do tipo (key, value);

• Filas de prioridade (priority queues);• Fila onde cada elemento é associado com uma ‘prioridade’;

• Conjuntos (sets).• Comumente implementados da mesma maneira que arrays associativos;• Nessa caso são chamados de sorted sets.

Implementações

• AA Tree; AVL Tree; Red-black Tree; Scapegoat Tree; Splay Tree; Treap;

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 39: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Árvore Binária Balanceada.

Aplicações da Árvore Binária Balanceada

Essa estrutura fornece implementação eficiente para listas ordenadas mutáveis:

• Arrays associativos (associative arrays: map ou dictionary);• Coleções baseadas em pares do tipo (key, value);

• Filas de prioridade (priority queues);• Fila onde cada elemento é associado com uma ‘prioridade’;

• Conjuntos (sets).• Comumente implementados da mesma maneira que arrays associativos;• Nessa caso são chamados de sorted sets.

Implementações

• AA Tree; AVL Tree; Red-black Tree; Scapegoat Tree; Splay Tree; Treap;

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 40: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Árvore Binária Balanceada.

Complexidade

Figura: As operações de busca, inserção e eliminação de elementos possuemcomplexidade O(logn) (no qual n é o número de elementos da árvore). Inserções eeliminações podem também requerer o rebalanceamento da árvore, exigindo umaou mais rotações.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 41: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Árvore Binária Balanceada.

Uso em Problemas

Árvores binárias balanceadas podems ser usadas para implementar qualqueralgoritmo que requeira o uso de listas ordenadas mutáveis.

Alguns algoritmos em Geometria Computacional exploram variações dessasestruturas para resolução de problemas como:

• Intersecção de segmentos de reta (line segment intersection)• O problema da intersecção dos segmentos de reta nos fornece uma lista

de segmentos de reta no plano e nos pede para determinar se quaisquerdois deles se intersectam (ou cruzam).

• Formas complexas oriundas de operações booleanas (intersecção, união,diferença), detecção de colisão em robótica e planejamento demovimento, visibilidade, oclusão;

• Localização de Ponto (point location)• Dada uma partição do espaço em regiões disjuntas, determinar a região

onde se encontra um ponto de consulta.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 42: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Árvore Binária Balanceada.

Uso em Problemas

Árvores binárias balanceadas podems ser usadas para implementar qualqueralgoritmo que requeira o uso de listas ordenadas mutáveis.

Alguns algoritmos em Geometria Computacional exploram variações dessasestruturas para resolução de problemas como:

• Intersecção de segmentos de reta (line segment intersection)• O problema da intersecção dos segmentos de reta nos fornece uma lista

de segmentos de reta no plano e nos pede para determinar se quaisquerdois deles se intersectam (ou cruzam).

• Formas complexas oriundas de operações booleanas (intersecção, união,diferença), detecção de colisão em robótica e planejamento demovimento, visibilidade, oclusão;

• Localização de Ponto (point location)• Dada uma partição do espaço em regiões disjuntas, determinar a região

onde se encontra um ponto de consulta.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 43: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Árvore Binária Balanceada.

Uso em Problemas

Árvores binárias balanceadas podems ser usadas para implementar qualqueralgoritmo que requeira o uso de listas ordenadas mutáveis.

Alguns algoritmos em Geometria Computacional exploram variações dessasestruturas para resolução de problemas como:

• Intersecção de segmentos de reta (line segment intersection)• O problema da intersecção dos segmentos de reta nos fornece uma lista

de segmentos de reta no plano e nos pede para determinar se quaisquerdois deles se intersectam (ou cruzam).

• Formas complexas oriundas de operações booleanas (intersecção, união,diferença), detecção de colisão em robótica e planejamento demovimento, visibilidade, oclusão;

• Localização de Ponto (point location)• Dada uma partição do espaço em regiões disjuntas, determinar a região

onde se encontra um ponto de consulta.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 44: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Árvore Binária Balanceada.

Uso em Problemas

Árvores binárias balanceadas podems ser usadas para implementar qualqueralgoritmo que requeira o uso de listas ordenadas mutáveis.

Alguns algoritmos em Geometria Computacional exploram variações dessasestruturas para resolução de problemas como:

• Intersecção de segmentos de reta (line segment intersection)• O problema da intersecção dos segmentos de reta nos fornece uma lista

de segmentos de reta no plano e nos pede para determinar se quaisquerdois deles se intersectam (ou cruzam).

• Formas complexas oriundas de operações booleanas (intersecção, união,diferença), detecção de colisão em robótica e planejamento demovimento, visibilidade, oclusão;

• Localização de Ponto (point location)• Dada uma partição do espaço em regiões disjuntas, determinar a região

onde se encontra um ponto de consulta.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 45: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Árvore Binária Balanceada.

Uso em Problemas

Árvores binárias balanceadas podems ser usadas para implementar qualqueralgoritmo que requeira o uso de listas ordenadas mutáveis.

Alguns algoritmos em Geometria Computacional exploram variações dessasestruturas para resolução de problemas como:

• Intersecção de segmentos de reta (line segment intersection)• O problema da intersecção dos segmentos de reta nos fornece uma lista

de segmentos de reta no plano e nos pede para determinar se quaisquerdois deles se intersectam (ou cruzam).

• Formas complexas oriundas de operações booleanas (intersecção, união,diferença), detecção de colisão em robótica e planejamento demovimento, visibilidade, oclusão;

• Localização de Ponto (point location)• Dada uma partição do espaço em regiões disjuntas, determinar a região

onde se encontra um ponto de consulta.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 46: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Árvore Binária Balanceada.

Uso em Problemas

Árvores binárias balanceadas podems ser usadas para implementar qualqueralgoritmo que requeira o uso de listas ordenadas mutáveis.

Alguns algoritmos em Geometria Computacional exploram variações dessasestruturas para resolução de problemas como:

• Intersecção de segmentos de reta (line segment intersection)• O problema da intersecção dos segmentos de reta nos fornece uma lista

de segmentos de reta no plano e nos pede para determinar se quaisquerdois deles se intersectam (ou cruzam).

• Formas complexas oriundas de operações booleanas (intersecção, união,diferença), detecção de colisão em robótica e planejamento demovimento, visibilidade, oclusão;

• Localização de Ponto (point location)• Dada uma partição do espaço em regiões disjuntas, determinar a região

onde se encontra um ponto de consulta.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 47: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Árvore Binária Balanceada.

Line Segment Intersection ProblemDada uma lista de segmentos de reta no plano determinar se quaisquer dois deles

se intersectam.

Figura: A forma mais comum e eficiente de resolução deste problema é o usandoa estratégia sweep line algorithm juntamente com uma estrutura do tipo árvorebinária balanceada.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 48: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Árvore Binária Balanceada.

Line Segment Intersection ProblemDada uma lista de segmentos de reta no plano determinar se quaisquer dois deles

se intersectam.

Figura: A forma mais comum e eficiente de resolução deste problema é o usandoa estratégia sweep line algorithm juntamente com uma estrutura do tipo árvorebinária balanceada.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 49: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Árvore Binária Balanceada.

Point Location ProblemDada uma partição do espaço em regiões disjuntas, determinar a região onde se

encontra um ponto de consulta.

Figura: O problema de localização de pontos é um tema fundamental nageometria computacional. Esse problema encontra aplicações em áreas que lidamcom o processamento de dados geométricos: sistemas de informação geográfica(GIS), planejamento de movimento e desenho assistido por computador (CAD).

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 50: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Árvore Binária Balanceada.

Point Location ProblemDada uma partição do espaço em regiões disjuntas, determinar a região onde se

encontra um ponto de consulta.

Figura: O problema de localização de pontos é um tema fundamental nageometria computacional. Esse problema encontra aplicações em áreas que lidamcom o processamento de dados geométricos: sistemas de informação geográfica(GIS), planejamento de movimento e desenho assistido por computador (CAD).

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 51: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

A Classe Nó Balanceado.

Class Node - Com Fator de Balanceamento� �1 /∗ Con ta i n e r t ha t r e p r e s e n t s a node data s t r u c t u r e ∗/2 c l a s s Node3 {4 ObjectData _va lue ; // v a l u e or key5 Ba lanceFac to r _ f a c t o r ; // f a c t o r to the b a l a n c i n g6 Node ∗_r , ∗_l ; // p o i n t e r s to the r i g h t and l e f t s u b t r e e7 p u b l i c :8 /∗ Con s t r u c t o r ∗/9 Node ( ObjectData v ) { _va lue = v ; _r = _l = n u l l ; } ;1011 /∗Method tha t hand l e s the v a l u e o f s t o r e d o b j e c t ∗/12 ObjectData v a l u e ( ) { r e t u r n _va lue ; } ;13 vo i d v a l u e ( ObjectData v ) { _va lue = v ; } ;1415 /∗Method tha t hand l e s the v a l u e o f ba l ance f a c t o r ∗/16 Ba lanceFac to r f a c t o r ( ) { r e t u r n _ f a c t o r ; } ;17 vo i d f a c t o r ( Ba l anceFac to r f ) { _ f a c t o r = f ; } ;1819 /∗Method tha t hand l e s the v a l u e o f l e f t and r i g h t p o i n t e r s ∗/20 Node∗ r i g h t ( ) { r e t u r n _r ; } ; v o i d r i g h t (Node∗ r ) { _r = r ; } ;21 Node∗ l e f t ( ) { r e t u r n _l ; } ; v o i d l e f t (Node∗ l ) { _l = l ; } ;2223 /∗Method tha t v e r i f i e s i f the c u r r e n t node i s a l e a f ∗/24 boo l i s L e a f ( ) { r e t u r n ( _l == n u l l && _r == n u l l ) ; } ;25 } ;� �

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 52: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

A Proto-Classe Binary Tree.

Class Binary Tree� �1 /∗ Con ta i n e r t ha t r e p r e s e n t s a b i n a r y t r e e data s t r u c t u r e ∗/2 c l a s s B ina ryTree3 {4 Node∗ _root ; // p o i n t e r to the r oo t o f t r e e5 p u b l i c :6 Bina ryTree ( ) { _root = n u l l ; } ; // Con s t r u c t o r7 Node∗ r o o t ( ) { r e t u r n _root ; } ; // Retu rns a p o i n t e r f o r r oo t8 boo l i n s e r t ( ObjectData v ) ; // I n s e r t s a e lement i n t r e e9 boo l remove ( ObjectData v ) ; // Removes a e lement o f the t r e e10 vo i d i nOrde r (Node∗ c u r r e n t ) ; // Nav i ga t e s u s i n g a s t r u c t u r e ’ i n o r d e r ’11 vo i d p reOrde r (Node∗ c u r r e n t ) ; // Nav i ga t e s u s i n g a s t r u c t u r e ’ p re o r d e r ’12 vo i d pos tOrde r (Node∗ c u r r e n t ) ; // Nav i ga t e s u s i n g a s t r u c t u r e ’ po s t o r d e r ’13 ObjectData sma l l e r ( ) ; // Retu rns the sma l l e r e lement14 ObjectData b i g g e r ( ) ; // Retu rns the b i g g e r e lement15 Node∗ s u c c e s s o r (Node∗ c u r r e n t ) ; // Retu rns the s u c c e s s o r node16 l ong i n t l e v e l ( ObjectData v ) ; // Retu rns the s t o r a g e l e v e l o f a e lement17 l ong i n t h e i g h t (Node∗ c u r r e n t ) ; // Retu rns the h e i g h t o f a node18 l ong i n t quant i t yOfNodes (Node∗ c u r r e n t ) ; // Quant i t y o f t r e e nodes19 boo l f i n d ( ObjectData v ) ; // F i nd s a e lement i n t r e e20 Node∗ f i n d ( ObjectData v ) ; // F i nd s a e lement i n t r e e21 } ;� �

ObjectData deve implementar os operadores <, >, ==

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 53: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

A Proto-Classe Binary Tree.

Class Binary Tree� �1 /∗ Con ta i n e r t ha t r e p r e s e n t s a b i n a r y t r e e data s t r u c t u r e ∗/2 c l a s s B ina ryTree3 {4 Node∗ _root ; // p o i n t e r to the r oo t o f t r e e5 p u b l i c :6 Bina ryTree ( ) { _root = n u l l ; } ; // Con s t r u c t o r7 Node∗ r o o t ( ) { r e t u r n _root ; } ; // Retu rns a p o i n t e r f o r r oo t8 boo l i n s e r t ( ObjectData v ) ; // I n s e r t s a e lement i n t r e e9 boo l remove ( ObjectData v ) ; // Removes a e lement o f the t r e e10 vo i d i nOrde r (Node∗ c u r r e n t ) ; // Nav i ga t e s u s i n g a s t r u c t u r e ’ i n o r d e r ’11 vo i d p reOrde r (Node∗ c u r r e n t ) ; // Nav i ga t e s u s i n g a s t r u c t u r e ’ p re o r d e r ’12 vo i d pos tOrde r (Node∗ c u r r e n t ) ; // Nav i ga t e s u s i n g a s t r u c t u r e ’ po s t o r d e r ’13 ObjectData sma l l e r ( ) ; // Retu rns the sma l l e r e lement14 ObjectData b i g g e r ( ) ; // Retu rns the b i g g e r e lement15 Node∗ s u c c e s s o r (Node∗ c u r r e n t ) ; // Retu rns the s u c c e s s o r node16 l ong i n t l e v e l ( ObjectData v ) ; // Retu rns the s t o r a g e l e v e l o f a e lement17 l ong i n t h e i g h t (Node∗ c u r r e n t ) ; // Retu rns the h e i g h t o f a node18 l ong i n t quant i t yOfNodes (Node∗ c u r r e n t ) ; // Quant i t y o f t r e e nodes19 boo l f i n d ( ObjectData v ) ; // F i nd s a e lement i n t r e e20 Node∗ f i n d ( ObjectData v ) ; // F i nd s a e lement i n t r e e21 } ;� �

ObjectData deve implementar os operadores <, >, ==

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 54: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Comparações Entre Estruturas do Tipo Árvore.

Comparações de Desempenho

O desempenho das operações numa árvore pode ser medido pelasua altura.

Neste quadro estamos realizando uma comparação entre uma estrutura de árvoresimples sem nenhum mecanismo de balaceamento (Árvore Binária) com outras

duas espécies de árvore (AVL e Rubro-Negra) que possuem algum tipo demecanismo de balanceamento intríseco.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 55: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Comparações Entre Estruturas do Tipo Árvore.

Comparações de Desempenho

O desempenho das operações numa árvore pode ser medido pelasua altura.

Neste quadro estamos realizando uma comparação entre uma estrutura de árvoresimples sem nenhum mecanismo de balaceamento (Árvore Binária) com outras

duas espécies de árvore (AVL e Rubro-Negra) que possuem algum tipo demecanismo de balanceamento intríseco.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 56: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Conclusões

Conclusão Sobre a Estrutura de DadosO que podemos concluir sobre árvores e suas derivações?

• Estrutura de dados de baixa complexidade;• Boa performance;• Amplamente utilizada;• Várias nuances e implementações;• Empregada em uma miríade de problemas práticos;• Quando balaceadas são mais rápidas em operações de busca;• Rebalanceamento pode ser oneroso: inserções e remoções;

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 57: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Conclusões

Conclusão Sobre a Estrutura de DadosO que podemos concluir sobre árvores e suas derivações?

• Estrutura de dados de baixa complexidade;• Boa performance;• Amplamente utilizada;• Várias nuances e implementações;• Empregada em uma miríade de problemas práticos;• Quando balaceadas são mais rápidas em operações de busca;• Rebalanceamento pode ser oneroso: inserções e remoções;

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 58: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Conclusões

Conclusão Sobre a Estrutura de DadosO que podemos concluir sobre árvores e suas derivações?

• Estrutura de dados de baixa complexidade;• Boa performance;• Amplamente utilizada;• Várias nuances e implementações;• Empregada em uma miríade de problemas práticos;• Quando balaceadas são mais rápidas em operações de busca;• Rebalanceamento pode ser oneroso: inserções e remoções;

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 59: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Conclusões

Conclusão Sobre a Estrutura de DadosO que podemos concluir sobre árvores e suas derivações?

• Estrutura de dados de baixa complexidade;• Boa performance;• Amplamente utilizada;• Várias nuances e implementações;• Empregada em uma miríade de problemas práticos;• Quando balaceadas são mais rápidas em operações de busca;• Rebalanceamento pode ser oneroso: inserções e remoções;

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 60: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Conclusões

Conclusão Sobre a Estrutura de DadosO que podemos concluir sobre árvores e suas derivações?

• Estrutura de dados de baixa complexidade;• Boa performance;• Amplamente utilizada;• Várias nuances e implementações;• Empregada em uma miríade de problemas práticos;• Quando balaceadas são mais rápidas em operações de busca;• Rebalanceamento pode ser oneroso: inserções e remoções;

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 61: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Conclusões

Conclusão Sobre a Estrutura de DadosO que podemos concluir sobre árvores e suas derivações?

• Estrutura de dados de baixa complexidade;• Boa performance;• Amplamente utilizada;• Várias nuances e implementações;• Empregada em uma miríade de problemas práticos;• Quando balaceadas são mais rápidas em operações de busca;• Rebalanceamento pode ser oneroso: inserções e remoções;

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 62: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Conclusões

Conclusão Sobre a Estrutura de DadosO que podemos concluir sobre árvores e suas derivações?

• Estrutura de dados de baixa complexidade;• Boa performance;• Amplamente utilizada;• Várias nuances e implementações;• Empregada em uma miríade de problemas práticos;• Quando balaceadas são mais rápidas em operações de busca;• Rebalanceamento pode ser oneroso: inserções e remoções;

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 63: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Conclusões

Conclusão Sobre a Estrutura de DadosO que podemos concluir sobre árvores e suas derivações?

• Estrutura de dados de baixa complexidade;• Boa performance;• Amplamente utilizada;• Várias nuances e implementações;• Empregada em uma miríade de problemas práticos;• Quando balaceadas são mais rápidas em operações de busca;• Rebalanceamento pode ser oneroso: inserções e remoções;

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 64: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Conclusões

Conclusão Sobre a Estrutura de DadosO que podemos concluir sobre árvores e suas derivações?

• Estrutura de dados de baixa complexidade;• Boa performance;• Amplamente utilizada;• Várias nuances e implementações;• Empregada em uma miríade de problemas práticos;• Quando balaceadas são mais rápidas em operações de busca;• Rebalanceamento pode ser oneroso: inserções e remoções;

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada

Page 65: Balanced Binary Trees

Universidade Federal de Alagoas - Campus A. C. Simões Instituto de Matemática - Programa de Pós-graduação

Agradecimentos

Grato Pela Atenção!• Michel Alves - [email protected]

Referências BibliográficasThomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein.Introduction to Algorithms, Second Edition. MIT Press and McGraw-Hill, 2001.ISBN 0-262-03293-7.

Donald Knuth. The Art of Computer Programming, Volume 3: Sorting andSearching, Third Edition. Addison-Wesley, 1997. ISBN 0-201-89685-0. Section6.2.3: Balanced Trees, pp.458–481.

Mark de Berg, Marc van Kreveld, Mark Overmars, and Otfried Schwarzkopf(2000). Computational Geometry (2nd edition ed.). Springer. ISBN3-540-65620-0. Chapter 2: Line Segment Intersection, pp.19–44. Chapter 6:Point location. pp. 121–146.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Árvore Binária Balanceada