当前位置: 首页 > 编程笔记 >

数据结构中的点四叉树

经慈
2023-03-14
本文向大家介绍数据结构中的点四叉树,包括了数据结构中的点四叉树的使用技巧和注意事项,需要的朋友参考一下

点四叉树是为表示二维点数据而实现的二叉树的改编。所有四叉树的特征由点四叉树共享。

在比较通常在O(log n)时间执行的二维有序数据点时,它通常非常有效。点四叉树的完整性值得一提,但kd树已超越它们成为广义二分搜索的工具。

点四叉树的构建如下。

给定下一个要插入的点,我们计算它所在的单元格并将其添加到树中。

添加新点,以便包含该点的单元格通过穿过该点的垂直线和水平线划分为四个象限。因此,单元是矩形的,但不一定是正方形。

在这些树中,每个节点都由一个输入点组成。

由于平面的划分是由点插入的顺序确定的,所以树的高度对插入顺序敏感并取决于插入顺序。以错误的顺序插入会导致一棵树的高度与输入点数成线性关系(在此点上,它成为一个链表)。

如果点集是静态的,则可以执行预处理以构建平衡高度的树。

点四叉树的节点结构

点四叉树的节点与二叉树的节点相同,主要区别在于它与四个指针(每个指针用于每个象限)相关联,而不是两个(“左”和“右”)在普通的二叉树中。同样,键通常分为两部分,分别指x和y坐标。

因此,一个节点包含以下信息

  • 四个指针:它们是quad ['NW'],quad ['NE'],quad ['SW']和quad ['SE']

  • 西北西北,东北东北,西南西南,东南东南

  • 点; 依次由

  • 键; 通常表示为x,y坐标

  • 值; 如一个名字

 类似资料:
  • 本文向大家介绍数据结构中的四叉树,包括了数据结构中的四叉树的使用技巧和注意事项,需要的朋友参考一下 四叉树是被实现以有效地存储二维空间上的点的数据的树。在此树中,每个节点最多具有四个子节点。 我们可以从二维区域构建四叉树,实现以下步骤 当前的二维空间分为四个框。 如果盒子中包含一个或多个点,则构建一个子对象,在其中存储盒子的二维空间。 如果一个盒子不包含任何点,则不要为其建立子对象。 对每个孩子执

  • 本文向大家介绍数据结构中的区域四叉树,包括了数据结构中的区域四叉树的使用技巧和注意事项,需要的朋友参考一下 区域四叉树可用于通过将区域划分为四个相等的象限,子象限等,以二维方式表示空间分区,每个叶节点由对应于特定子区域的数据组成。树中的每个节点都与正好有四个子节点或没有子节点(叶节点)相关联。遵循这种分解策略的四叉树的高度(即细分子象限,直到并且除非子象限中有需要进一步完善的有趣数据为止)敏感并取

  • 数据类型和属性 本节主要介绍F90的类型说明中新的种别和属性等概念,并且引进派生数据类型等数据结构用基本语句。 4.1.1 类型说明语句 a) 一般形式 第一章中我们简单地按照F77的传统方法介绍了数据类型和说明语句,这里将介绍具有现代特性的类型说明语句的书写形式。F90程序中的数据都有三个特征:类型、种别、属性,由类型说明语句来定义说明。其一般形式是: 类型说明[(种别说明)][,属性说明表]

  • 本文向大家介绍二叉树作为数据结构中的字典,包括了二叉树作为数据结构中的字典的使用技巧和注意事项,需要的朋友参考一下 当我们尝试实现抽象数据类型Dictionary时,节点将与值关联。字典基本上是一组键,这些键必须是从总顺序中得出的元素。可能存在与每个键相关联的其他信息,但它不会导致任何概念上的理解。 如果字典是使用树实现的,则每个节点将拥有唯一的键。在这里,对于树中的每个节点u,每个键ul都严格小

  • 二叉树 : 闲话少说,直接上代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>BST</title> </head> <body> <script> //结点 function Node(data,left,right){ this.data=data; t

  • 本文向大家介绍Java中二叉树数据结构的实现示例,包括了Java中二叉树数据结构的实现示例的使用技巧和注意事项,需要的朋友参考一下 来看一个具体的习题实践: 题目 根据二叉树前序遍历序列例如:7,-7,8,#,#,-3,6,#,9,#,#,#,-5,#,#,构建二叉树,并且用前序、中序、后序进行遍历 代码 二叉树的深度 下面是是实现二叉树的递归算法的实现,其思想就是,若为空,则其深度为0,否则,其