1
我有以下实现BST的:二叉搜索树 - 删除节点,没有指针的前任
struct BstNode
{
int value;
BstNode* leftSubnode;
BstNode* rightSubnode;
BstNode(int value)
{
this->value = value;
this->leftSubnode = this->rightSubnode = nullptr;
}
};
struct BstTree
{
BstNode* root;
};
,你可以看到,我没有指针的前身(当前节点的父)。我实现添加/显示方法没有问题,但我无法弄清楚如何从我的结构中删除一个节点。当只有指向左右节点的指针时,是否有可能这样做?请注意,所有方法都应该针对BstTree
结构实施,而不是针对BstNode
结构(因为我从我的老师收到的任务)。
您没有父指针数据结构填充,但没有理由你不能有一个在你的删除例程。 – john
@john,好的,我明白了,谢谢。 –