【发布时间】:2015-06-08 15:29:01
【问题描述】:
堆的用途是什么?无论堆可以做什么,也可以通过像 AVL 树这样的自平衡二叉搜索树来完成。堆最常见的用途是在 O(1) 时间(始终是根)内找到最小(或最大)元素。通过维护指向最小(或最大)元素的指针,在构建 AVL 树时也可以包含此功能,并且可以在 O(1) 时间内回答最小/最大查询。
我能想到的与 AVL 树相比,堆的唯一好处是 AVL 树由于指针而使用更多的内存。与 AVL 树相比,使用堆还有其他优势/功能吗?
【问题讨论】:
标签: data-structures tree heap binary-search-tree avl-tree