堆的用途是什么?堆能做的任何事情都可以由自平衡二叉搜索树(如AVL树)完成。堆最常见的用途是在O(1)时间内找到最小(或最大)元素(始终为根)。构建AVL树时也可以包括此功能,方法是保持对最小(或最大)元素的指针,并且可以在O(1)时间内回答min / max查询。
我能想到的堆比AVL树的唯一优点是,由于指针,AVL树使用更多的内存。除此之外,使用堆而不是AVL树是否有其他优点/功能?
我能想到的堆比AVL树的唯一优点是,由于指针,AVL树使用更多的内存。除此之外,使用堆而不是AVL树是否有其他优点/功能?