【发布时间】:2019-07-30 07:23:47
【问题描述】:
所以,我给自己编写了一个二叉搜索树,它基本上已经完成了。删除、搜索、添加、打印:全部实现。不过,我现在想做的是添加一个删除重复项的函数。我没有说明我在用什么语言做这件事,因为我不是在寻找代码解决方案,而是在正确的方向上轻推。
我有一个像这样递归打印树的函数:
private void PrintTree(BinarySearchTreeElement<T> currentNode)
{
if (currentNode == null)
{
return;
}
this.PrintTree(currentNode.leftChild);
Console.Write(currentNode.ElementValue + ", ");
this.PrintTree(currentNode.rightChild);
}
它工作得很好,通过它非常快。我想知道我是否可以使用这种方法,但我的问题是我不知道如何在其中实现一个列表。递归让我有点困惑,所以我不知道只是向参数添加一个列表是否有效,但我认为不会。 (如果这是完全错误的删除重复项的方法,请告诉我,但我仍然想要这个功能。)
我尝试过更改此设置,但使用列表作为返回参数,它给了我一个“并非所有路径都返回一个值”,这让我更加困惑,让我觉得我的方法完全错误
【问题讨论】:
-
您是要获取所有元素的列表、删除重复项还是获取没有重复项的元素列表?
-
我只想要一个元素列表。一旦我有了列表,我已经知道如何解决重复问题
标签: graph tree binary-search-tree