使用其他关键字对二叉搜索树进行排序?

SkinnyBetas:

我在Java中有一个二进制搜索树,该树在每个节点上都有一个对象,这些对象是根据其name属性添加的。遍历哪个对象时,会根据它们的名称按字母顺序列出它们,这很好。虽然,我需要一种方法,该方法将根据对象的age属性以降序排列。因此,基本上我需要临时重新排序树,以便按顺序打印内容。

到目前为止,我想出的是遍历树并将每个节点添加到一个临时数组中,当完成时,该数组将通过合并排序。这行得通,但似乎效率相对较低,并且增加了复杂性,这是我必须创建的第一棵二叉树,因此我的方法可能是不必要的。

我想我的问题是,是否有更有效的方法来解决这个问题或对树进行重新排序?由于树将完全是随机的(就年龄而言),我想不出另一种方法。任何帮助将不胜感激。

蒂亚戈·罗西(Tiago Rossi):

看来您可以创建另一棵根据年龄排序的树,并且每当您向第一棵树添加项目时,也可以将同一项目添加到第二棵树。这使您可以将O(logN)插入到新树中,并将O(N)遍历该树并打印出项vs O(NlogN),这是合并排序的运行时。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章