gpt4 book ai didi

c# - 从树中删除一个对象

转载 作者:太空宇宙 更新时间:2023-11-03 18:48:08 29 4
gpt4 key购买 nike

我有一个 Find 函数可以从 BST 中找到一个元素

 private Node Find(ref Node n, int e)
{
if (n == null)
return null;

if (n.Element == e)
return n;
if (e > n.Element)
return Find(ref n.Right, e);
else
return Find(ref n.Left, e);
}

我使用以下代码来获取一个节点,然后将此节点设置为空。

Node x = bsTree.Find(1);
x = null;
bsTree.Print();

应该从树中删除这个节点,因为它被设置为 null 但它仍然存在于树中。

我以前做过,但这次漏掉了一些东西,也不知道是什么。

最佳答案

您正在初始化变量 x 以引用调用 Find 的结果,然后您将同一变量重新分配给 null。你还没有对树做任何事情。

要真正删除该项目,您必须编写一些代码来操纵树本身。在不知道您拥有哪种树(红黑、AVL 等)的情况下,很难猜测该代码应该是什么样子。

关于c# - 从树中删除一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2566422/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com