这些天我一直在尝试实现我的教授提出的一个函数,作为一个挑战,但我无法想出任何可能做到它的方法,所以我来这里看看是否有人能够帮助我。
目标是将它们按顺序打印出来,因此,在这种情况下,它会输出:
这个问题只涉及算法,但我实际上是使用C++编程的,使用了基本规格(插入、删除、成员操作)编写的BSTree。
问题如下:
假设树的每个节点都包含一个绝对数值,并且我们有两个不同的BST:一个用于存储负数,另一个用于存储正数。我们可以称之为negBST和posBST。例如,如果我们输入数字-2 2 5 8 -4 -5 -3 -6
,这将是我们的两棵树:
2 2
\ \
4 5
/ \ \
3 5 8
\
6
Negative BST Positive BST
目标是将它们按顺序打印出来,因此,在这种情况下,它会输出:
2 -2 -3 -4 5 -5 -6 8
现在,挑战来了:是否可以在不使用任何其他辅助动态数据结构(如队列、栈、列表等)的情况下完成这个任务呢?
编辑: 所提供的示例可能有点令人困惑,因为树的深度可能会有所不同。