【发布时间】:2016-01-23 06:49:42
【问题描述】:
此代码创建一个平衡二叉搜索树,它是两个平衡二叉搜索树的交集。
(define (intersection-tree t1 t2)
(list->tree (intersection-set (tree->list-2 t1) (tree->list-2 t2))))
- tree->list-2 将树扁平化为有序集合。它需要 Theta(N)。
- intersection-settakes 两个集合并使用两个输入集合的交集创建一个新集合。它需要 Theta(N)。
- list->tree 将新创建的集合变成平衡的二叉搜索树。取 Theta(N)。
也就是说,我有一个过程调用 4 个采用 Theta(N) 的过程(list->tree、intersection-set、两个 tree->lists)。我的猜测是所有这些都需要 4N。忽略常数因子,它变为 Theta(N)。说交叉树过程需要 Theta(N) 是否正确?
【问题讨论】: