Notas sobre el algoritmo: Point Quadtree

  • Point quadtree es una estructura de datos de árbol que se utiliza principalmente para el almacenamiento e indexación de puntos espaciales.
  • En el árbol cuádruple de puntos, el espacio se divide en cuatro rectángulos y los cuatro polígonos diferentes corresponden a los cuatro cuadrantes SW, NW, SE y NE.

1 operación básica

1.1 Inicialización

Cree un nodo raíz que represente toda el área del espacio bidimensional

1.2 Punto de inserción

  • Cuando es necesario insertar un nuevo punto
    • Comenzando desde el nodo raíz, determine a qué cuadrante debe pertenecer el punto según sus coordenadas e ingrese recursivamente a ese cuadrante.
      • Para el espacio de datos k-dimensional, el espacio de índice correspondiente se divide en 2k subespacios disjuntos con el punto recién insertado como centro, que a su vez corresponden a sus 2k nodos secundarios. Para los nodos ubicados en un determinado punto del subespacio, se asigna a el subárbol correspondiente

1.3 Consulta

Al consultar todos los puntos en una región, comience desde el nodo raíz, verifique la intersección de la región con cada nodo (cuadrante) e ingrese recursivamente los nodos que se cruzan con la región de consulta.

2 ejemplos

Supongamos que tenemos un espacio bidimensional con el rango [0, 16) x [0, 16) y queremos insertar los siguientes puntos:

  • A(2, 3)
  • B(4, 7)
  • C(14, 14)
  • D(9, 4)

2.1 Inicialización

Inicialmente, hay un cuadrado de [0, 16) x [0, 16) como nodo raíz

2.2 Punto de inserción

2.2.1 Insertar A :

2.2.2 Insertar B :

2.2.3 Insertar C :

2.2.4 Insertar D

D está en la esquina inferior derecha con B como centro, por lo que no es necesario dividir el espacio.

2.2.5 Logros

3 ventajas y desventajas

3.1 Ventajas

  • Estructura simple
  • Alto rendimiento para la búsqueda exacta de puntos coincidentes

3.2 Desventajas

  • La naturaleza dinámica del árbol es pobre y eliminar nodos es complejo.
    • Por ejemplo, después de eliminar el punto B en el ejemplo anterior, ¿deberían seguir C o D? ¿Qué pasa si C y D tienen nodos secundarios?
  • Además de almacenar información sobre los nodos secundarios, cada nodo también necesita almacenar muchos punteros nulos.
    • Por ejemplo, en el punto A anterior, además de almacenar B, los otros tres cuadrantes también necesitan almacenar punteros nulos.
      • ——> La sobrecarga de almacenamiento de espacio es grande y la tasa de utilización del espacio ocupa el primer lugar

Supongo que te gusta

Origin blog.csdn.net/qq_40206371/article/details/132680022
Recomendado
Clasificación