繁体   English   中英

C++二叉搜索树删除无序变量

[英]C++ Binary Search Tree Deletion by unordered variable

我有一个按名称排序的二叉搜索树,但我试图删除所有分数低于 50 的学生。我有困难,因为树不是按分数排序,而是按名称排序,但我需要按分数删除. 我不能为上帝的生命似乎能够合并遍历 + 节点删除而不会出错,或者它显然无法正常工作。 有人可以让我朝着正确的方向前进吗? 我找不到任何线程,它们被树未排序的变量删除,并且无法在线找到任何线程。

谢谢你。

这可能最好分两次完成。 在第一遍中,初始化一个空的节点列表。 然后,对树进行中序遍历,并将对每个需要删除的节点的引用存储在列表中。

在第二遍中,遍历您在第一遍中创建的列表,依次删除每个节点。

您也可以通过创建新树一次性完成此操作。 然后,对原始树进行中序遍历,将所有得分大于或等于 50 的节点复制到新树中。 完成后,删除旧树。

一般来说,如果分数低于50的学生很少,第一种方法会更快。但是,如果超过一半的学生分数低于50,那么第二种方法可能会更快。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM