我正在为我的决赛做准备,在完成这些主题的过程中,我遇到了一些疑问。
我知道最佳二进制搜索树可以根据节点的频率为树提供最佳结构。我们的想法是保持节点具有更高的频率(并且还满足bst属性)在顶部以获得最佳解决方案。
而Avl是BST,它在旋转时执行平衡,因此提供平衡的树,但频率在这里不起作用。
所以,我的查询是,如果我们知道对于各个节点的频率,我们得到一个最佳的bst结构,其形式如下: 例如:
await Task.Run( ()=> PerformTaskAction(cancelSource.Token), cancelSource.Token);
即,一种结构的链表类型,但它是最优的,因为频率是,例如[15,13,10,4,2 ..]
但如果使用AVL解决这个问题,AVL将平衡树并形成不同的结构,使其不适合这些频率。 所以,我的问题是,如果我们知道节点的相应频率,那么与最优二叉搜索树相比,对这些数据应用AVL不是正确的选择吗? 在这种情况下,最佳二分搜索树是更好的选择吗?
如果有人能清除我的疑问,我将感激不尽。
提前致谢。