最优二叉搜索树和AVL树之间的比较?

时间:2017-05-10 00:16:04

标签: data-structures binary-search-tree dynamic-programming graph-algorithm avl-tree

我正在为我的决赛做准备,在完成这些主题的过程中,我遇到了一些疑问。

我知道最佳二进制搜索树可以根据节点的频率为树提供最佳结构。我们的想法是保持节点具有更高的频率(并且还满足bst属性)在顶部以获得最佳解决方案。

而Avl是BST,它在旋转时执行平衡,因此提供平衡的树,但频率在这里不起作用。

所以,我的查询是,如果我们知道对于各个节点的频率,我们得到一个最佳的bst结构,其形式如下:  例如:

await Task.Run( ()=> PerformTaskAction(cancelSource.Token), cancelSource.Token);

即,一种结构的链表类型,但它是最优的,因为频率是,例如[15,13,​​10,4,2 ..]

但如果使用AVL解决这个问题,AVL将平衡树并形成不同的结构,使其不适合这些频率。 所以,我的问题是,如果我们知道节点的相应频率,那么与最优二叉搜索树相比,对这些数据应用AVL不是正确的选择吗? 在这种情况下,最佳二分搜索树是更好的选择吗?

如果有人能清除我的疑问,我将感激不尽。

提前致谢。

0 个答案:

没有答案