我正在根据预遍历和有序遍历(每个节点中的一个字符)来构建二叉树,并尝试围绕如何构建实际树来进行研究。
这是我关于如何实现此目标的思考过程:
我已经完成了1-4的步骤,但是我不太确定如何正确构建我的树,并且想知道是否有人有任何指针。谢谢。
在构建新树之前进行递归。因此,您的列表如下所示:
整个非递归部分都可以用O(n)来完成,每个递归级别的总和也都是O(n)。因此,总运行时间取决于递归级别的数量。如果您有一棵近似平衡的树,则深度为O(log n),因此我们完全达到O(n·log n)。由于唯一必要的慢部分是在有序数组中搜索根节点,所以我猜如果我们对树的了解更多,我们甚至可以优化它。
在最坏的情况下,树中每个节点都有一个递归级别,其复杂度为O(n·n)。
示例:预订ABCDEF,订购FEDCBA,树:
+---+
| A |
++--+
|
+---+ |
| B +<--+
++--+
|
+---+ |
| C +<--+
++--+
|
+---+ |
| D +<--+
++--+
|
+---+ |
| E +<--+
++--+
|
+---+ |
| F +<--+
+---+
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句