Apresentacao Doutoramento (PhD Thesis) António Baptista (AJ Baptista) Jan 2007
Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio...
Transcript of Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio...
![Page 1: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/1.jpg)
Sistemas de Informações Geográficas
Unidade 3.2: Estrutura de Dados Espaciais
Prof. Cláudio Baptista
2003.1
![Page 2: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/2.jpg)
3.2 Estrutura de Dados Espaciais
Necessidade de indexação dos dados espaciais de modo a reduzir o tempo de acesso aos mesmos
Métodos de indexação tradicionais não são indicados para dados espaciais Hash: não atende a consultas de faixa (range
queries) B-Tree: trata apenas uma dimensão
![Page 3: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/3.jpg)
3.2 Estrutura de Dados Espaciais
Operação comum com dados espaciais é a pesquisa de objetos que estão numa determinada área Ex.: Encontre todos os hospitais que estão a no
máximo 20Km deste ponto
![Page 4: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/4.jpg)
3.2 Estrutura de Dados Espaciais
Algumas estruturas de dados propostas: Grid quad-trees k-d-tree r-tree
![Page 5: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/5.jpg)
3.2.1 Quad trees
Acelera o acesso a dados num plano 2dTécnica bastante simplesO espaço de busca é recursivamente
decomposto em quadrantes até que o número de retângulos sobrepondo cada quadrante é menor do que a capacidade da página.
Os quadrantes são nomeados: Noroeste, Nordeste, Sudeste e Sudoeste
![Page 6: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/6.jpg)
3.2.1 Quad trees
O índice é representado como uma árvore quaternária (cada nó interno tem 4 filhos, um por quadrante)
Cada folha é associada a uma página de disco
Cada retângulo aparece em todos os quadrantes folhas que o sobrepõem
![Page 7: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/7.jpg)
3.2.1 Quad trees
1 5 14
62
3
812
11
13
9
107
4
x y a
tz
b
c d
R
a[8,11,12,13] [3,4,7] d [9,10,13]
b c d
[1,2,5,6] [5,6,14] [2,3,6] [6]x y z t
![Page 8: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/8.jpg)
3.2.1 Quad tree
Consulta de ponto (point query) é simples em quad tree.
Um único path (caminho) é percorrido da raiz até a folha
Em cada nível, é escolhido um dos quadrantes que contém o ponto da consulta
![Page 9: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/9.jpg)
3.2.1 Quad trees
1 5 14
62
3
812
11
13
9
107
4
x y a
tz
b
c d
R
a[8,11,12,13] [3,4,7] d [9,10,13]
b c d
[1,2,5,6] [5,6,14] [2,3,6] [6]x y z t
P
Exemplo de Consulta Ponto P
![Page 10: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/10.jpg)
3.2.1 Quad trees
Inserção em quadtrees um retângulo será inserido em cada quadrante
folha que o sobrepõe então todos os caminhos para as folhas que
sobrepõem o retângulo a ser inserido são percorridos
a página P associada com cada folha é lida Se P não está cheio, então insere o novo
retângulo
![Page 11: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/11.jpg)
3.2.1 Quad trees
Inserção em quadtrees (cont) Se P estiver cheio, O quadrante deve ser
dividido em quatro quadrantes e 3 novas páginas são alocadas
As entradas da página antiga mais a página nova são divididas nas quatro páginas
Uma entrada E é adicionada a toda página cujo quadrante intercepta E.MBR (Minimum Bounding Rectangle)
![Page 12: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/12.jpg)
3.2.1 Quad trees
1 5 14
62
3
812
11
13
9
107
4
x y a
tz
b
c d
Inserção em Quadtree
15
16
m n
p q
Como ficará a árvore após as inserções de 15 e 16?
![Page 13: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/13.jpg)
3.2.2 k-d treeUsada para representar pontosárvore kd particiona o espaço em célulasé uma árvore de busca binária, reside em memória principal, de forma que os nós
interiores em cada nível contêm valores referentes a um único eixo, X ou Y, alternadamente
as folhas apontam para páginas físicas
várias folhas podem apontar para a mesma página física
![Page 14: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/14.jpg)
3.2.2 k-d tree
o valor armazenado na raiz divide o espaço em dois subespaços através de uma reta perpendicular ao eixo dos X, digamos;
o valor armazenado no filho à esquerda (ou direita) por sua vez divide o subespaço à esquerda (ou direita) em dois subespaços através de uma reta perpendicular ao eixo dos Y ; e assim por diante, alternando as dimensões.
![Page 15: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/15.jpg)
3.2.2 K-D-Tree
![Page 16: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/16.jpg)
3.2.2 K-D-Tree
A
B
C
D
Árvore para figura anterior
![Page 17: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/17.jpg)
3.2.2 K-d Tree
Outro ExemploSejam as cidades com coordenadas
Cidade (X,Y)
Mossoró (19,45)Natal (40,50)Campina Grande (38,38)João Pessoa (54,40)Monteiro (4,4)
![Page 18: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/18.jpg)
3.2.2 K-d Tree
Monteiro
Campina GrandeJoão Pessoa
NatalMossoró
![Page 19: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/19.jpg)
3.2.2 K-d Tree
Inserção de Mossoró
Inserção de Natal
Mossoró (19,45)
Mossoró (19,45)
Natal (40,50)
![Page 20: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/20.jpg)
3.2.2 K-d Tree
Monteiro
Campina GrandeJoão Pessoa
NatalMossoró
![Page 21: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/21.jpg)
3.2.2 K-d Tree
Monteiro
Campina GrandeJoão Pessoa
NatalMossoró
![Page 22: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/22.jpg)
3.2.2 K-d Tree
Inserção de Campina
Campina (38,38)
Mossoró (19,45)
Natal (40,50)
![Page 23: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/23.jpg)
3.2.2 K-d Tree
Monteiro
Campina GrandeJoão Pessoa
NatalMossoró
![Page 24: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/24.jpg)
3.2.2 K-d Tree
Inserção de João Pessoa:
Campina(38,38)
Mossoró (19,45)
Natal (40,50)
JP(54,40)
![Page 25: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/25.jpg)
3.2.2 K-d Tree
Monteiro
Campina GrandeJoão Pessoa
NatalMossoró
![Page 26: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/26.jpg)
3.2.2 K-d Tree
Inserção de Monteiro:
Campina(38,38)
Mossoró (19,45)
Natal (40,50)
JP(54,40)
Monteiro(4,4)
![Page 27: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/27.jpg)
3.2.2 K-d Tree
Monteiro
Campina GrandeJoão Pessoa
NatalMossoró
![Page 28: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/28.jpg)
3.2.3 R-Tree
É uma árvore similar a uma B+-tree, com índices para dados nas folhas
Nós correspondem à páginas de discoA estrutura é projetada de forma que uma
pesquisa espacial requer visitar um número pequeno de nós
Um BD espacial consiste de tuplas representando objetos espaciais, onde cada tupla possui um identificador
![Page 29: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/29.jpg)
3.2.3 R-Tree
Nós folhas contêm entradas da forma: (R, TId) Onde: R contém o retângulo que encobre a área
da tupla identificada por TId. Este retângulo é conhecido por Minimum
Bounding Box ou Minimum Bounding Rectangle
Ex.
![Page 30: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/30.jpg)
3.2.3 R-Tree
Nós não-folhas contêm entradas da forma: (R, Filho) Onde R é o retângulo que envolve todos os
retângulos dos descendentes deste nó e Filho é o endereço do nó filho
![Page 31: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/31.jpg)
3.2.3 R-Tree
Definição: Sejam M e m o número máximo e mínimo de entradas de um nó respectivamente, tal que m <= M/2 Uma R-tree satisfaz às seguintes propriedades: P1. Cada nó contém entre M e m entradas, exceto a
raiz P2. Para cada nó folha (R, TId), R é o menor retângulo
que espacialmente contém os objetos espaciais n-dimensionais representados pela tupla TId
![Page 32: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/32.jpg)
3.2.3 R-Tree
Definição (cont) P3. Para cada entrada (R, filho) num nó não
folha, T é o menor retângulo que espacialmente contém os retângulos descendentes
P4. O nó raiz tem pelo menos dois filhos a menos que seja um nó folha
P5. Todas as folhas aparecem num mesmo nível
![Page 33: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/33.jpg)
3.2.3 R-Tree
![Page 34: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/34.jpg)
3.2.3 R-Tree
![Page 35: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/35.jpg)
PointQuery (consulta ponto)RTPointQuery (p: Point): set (oid)begin
result = {};// Passo 1: Atravessar a árvore da raiz, e computar // SL, o conjunto de folhas cujo TId contém P SL = RTTraversal(root, P);// Passo 2: percorra as folhas e acrescente ao // resultado àquelas que contiverem P for each L in SL do
// Percorra as entradas da folha L
for each e in L doif (e.mbb contém P) then result += e.oid;
return result;end
![Page 36: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/36.jpg)
PointQuery (consulta ponto)
RTTraversal(oid: Node, P:point) : set of folhasbegin
result = {};// Obtém a página N = readPage(oid);if (ehFolha(N)) return N;
// Scan as entradas de N e visitar àquelas que contém Pfor each e in N do
if (e.mbb contém P) then result += RTTraversal(e.oid, P);
return result;end
![Page 37: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/37.jpg)
Inserção A árvore é percorrida top-down, a partir da raiz. Em
cada nível, verifica-se qual mbb contém o mbb do objeto a ser inserido e desce naquela sub-árvore
Caso não exista nenhum nó não folha que contenha o objeto a ser inserido, então um nó é escolhido para ter seu mbb estendido de forma a conter o objeto a ser inserido. O nó escolhido será aquele que precisa crescer menos seu mbb.
O processo é repetido até se encontrar um nó folha.
![Page 38: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/38.jpg)
Inserção Se o nó folha não estiver cheio, uma nova
entrada [mbb, oid] é adicionada à página associada com a folha. Observação: se houver crescimento no mbb da folha, este deve se progagar para cima na árvore.
Se o nó folha f estiver cheio, uma divisão de nó ocorrerá: uma nova folha f’ é criada, e M+1 entradas são distribuidas entre f e f’.
![Page 39: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/39.jpg)
InserçãoInserir (e: Nodo)begin
// Inicializa a busca pela raiz nodo = raiz;// Escolha um caminho descendo para folhawhile (nãoEhFolha(nodo)) do
nodo = EscolherSubÁrvore(nodo, e);//Insira na folhaInserirEmFolha(nodo, e);// Divide e ajusta a árvore se a folha estiver cheia, // senão ajusta o caminhoif (ehCheio(nodo)) then
DividirEAjustar(nodo);else AjustarCaminho(nodo);
end
![Page 40: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/40.jpg)
Inserção
A função EscolherSubÁrvore(node, e) pega a entrada do node cujo node.mbb contém e.mbb ou precisa de menor crescimento
A função AjustarCaminho(node) propaga o crecimento do mbb para cima na árvore. Este processo pára quando não precisar mais fazer crescimento ou se alcançar a raiz. Esta função está descrita a seguir.
![Page 41: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/41.jpg)
Inserção
AjustarCaminho (nodo: Node)begin
if (ehRaiz(nodo)) return;//Encontrar o pai do nodopai = getPai(nodo);// Ajuste a entrada do nodo no paiif (AjustarEntrada(pai, nodo)) then
// Entrada foi modificada, ajuste o caminho // para o paiAjustarCaminho(pai);
end
![Page 42: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/42.jpg)
InserçãoDividirEAjustar (nodo: Node)begin
//Cria um novo nodo e distribui as entradasnovoNodo = Dividir(nodo);if (ehRaiz(nodo)) then
CriarNovaRaiz(nodo, novoNodo);else// Obter pai do nópai = getPai(nodo);//Ajustar entrada do nodo e seus paisAjustarEntrada(pai, nodo)// Inserir novo nodo no paiInserirNodo(pai, novoNodo);if (ehCheio(pai)) then
DividirEAjustar(pai);else
AjusteCaminho(pai);end
![Page 43: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/43.jpg)
Inserção
A função AjustarEntrada(pai, filho) compara pai.mbb e filho.mbb. Se for preciso o pai.mbb é estendido e a função retorna TRUE, caso contrário retorna FALSE
![Page 44: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/44.jpg)
3.2.3 R-TreeDivisão de Nó
Para adicionar uma nova entrada a um nó cheio é necessário dividir as entradas em dois nós
A divisão deve ser feita de modo que seja improvável que ambos nós sejam examinados em pesquisas subsequentes
Uma vez que a decisão de visitar um nó depende se seu retângulo sobrepõe a área sendo pesquisada, a área total dos dois retângulos deve ser minimizada
![Page 45: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/45.jpg)
3.2.3 R-Tree
Veja que a área do Bad Split é muito maior do que a área de Good Split
![Page 46: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/46.jpg)
Remoção
A remoção é feita em 3 passos: Encontrar o nodo folha F que contém a entrada e Remover e de F Reorganizar a árvore se houver underflow.
Obs.: Uma abordagem simples na reorganização é remover o nodo inteiro e re-inserir as m-1 entradas restantes.
![Page 47: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/47.jpg)
Remoção
Remoção (e: Objeto)begin
//Encontrar a folha contendo eF = EncontrarFolha(e);// Remover entradas e reorganizar árvore// o resultado é um conjunto de nodos QQ = Reorganizar(F,e);// Reinserir as entradas dos nodos de QReinserir(Q);
end
![Page 48: Sistemas de Informações Geográficas Unidade 3.2: Estrutura de Dados Espaciais Prof. Cláudio Baptista 2003.1.](https://reader035.fdocumentos.tips/reader035/viewer/2022062623/552fc10d497959413d8c458b/html5/thumbnails/48.jpg)
Remoção
Reorganizar (N: nodo, e: objeto): {objetos de nodo}begin
Q = {}; // conjunto de nodos//Remover e de NN = N - e;if (not ehRaiz(N)) then
if (N.numNodos < m) thenQ = Q U N;// Obtém o pai e reorganiza-oF = getPai(N);
Q = Q U Reorganizar(F, entrada de N em F)else// N foi modificado: ajuste o caminho
AjustarCaminho(N); end