如何找到指向C中当前结构的结构?

如何找到指向C中当前结构的结构?,c,C,我有一个名为box_pool的结构数组。在这个数组中,每个结构指向另外两个结构,为了创建一些组织,我正在创建一个二叉搜索树。但是如果我当前有一个要删除的结构,但是为了删除它,我需要将前一个结构的指针重定向到下一个结构。我该怎么做呢?您需要从根开始访问结构,没有其他简单的方法,除非您存储双向链接,以便 struct node { struct node* left; struct node* right; struct node* parent; } 这将有助于找到节点的存储位置,但

我有一个名为box_pool的结构数组。在这个数组中,每个结构指向另外两个结构,为了创建一些组织,我正在创建一个二叉搜索树。但是如果我当前有一个要删除的结构,但是为了删除它,我需要将前一个结构的指针重定向到下一个结构。我该怎么做呢?

您需要从根开始访问结构,没有其他简单的方法,除非您存储双向链接,以便

struct node
{
  struct node* left;
  struct node* right;
  struct node* parent;
}

这将有助于找到节点的存储位置,但会使事情复杂化,因为您将不得不更新父节点,并浪费一些空间。这是一个典型的权衡。

你自己的想法是什么?真的没有什么神奇的解决方案……唯一真正的可能是进行反向查找,即扫描数组以找到您要查找的内容,或者进行反向链接,以便其他两个结构有一个额外的指针返回到数组中。