Data structures 从二维二叉搜索树中删除节点

Data structures 从二维二叉搜索树中删除节点,data-structures,binary-search-tree,kdtree,Data Structures,Binary Search Tree,Kdtree,我想知道是否有人能提供一些关于从2d二叉搜索树中删除节点的有用信息 我知道有四个案例,第一个我已经完成了: 删除一个没有子节点(叶)的节点很简单,只需将指向该节点的指针设置为null即可 删除左节点上有一个子节点而右节点上有一个子节点的节点时为空 删除右侧节点上有一个子节点且左侧节点为空的节点 删除具有两个子节点(左侧和右侧)的节点 我不知道如何准确地做2、3和4。我试着反复地做,但是,这似乎不起作用。我假设这必须递归地完成。有人能告诉我这到底是怎么做的吗。这是用java编写的,但不重要:)在2

我想知道是否有人能提供一些关于从2d二叉搜索树中删除节点的有用信息

我知道有四个案例,第一个我已经完成了:

  • 删除一个没有子节点(叶)的节点很简单,只需将指向该节点的指针设置为null即可
  • 删除左节点上有一个子节点而右节点上有一个子节点的节点时为空
  • 删除右侧节点上有一个子节点且左侧节点为空的节点
  • 删除具有两个子节点(左侧和右侧)的节点
    我不知道如何准确地做2、3和4。我试着反复地做,但是,这似乎不起作用。我假设这必须递归地完成。有人能告诉我这到底是怎么做的吗。这是用java编写的,但不重要:)

    在2D树中,所有值都存储在叶节点中。内部节点只是定位叶节点的路径。具体而言,内部节点定义包含基础数据的半平面。我们只处理数据;我们不修改数据结构本身的结构元素。因此,只有上述案例1成立。所有其他的都是无关的。

    这是什么样的2D二叉搜索树?这是一棵k-d树吗?四叉树?