在python中使用avl实现的优先级队列

时间:2018-12-30 19:20:08

标签: insert max priority-queue

实现了插入,删除,搜索AVL树的操作。我怎么能够 实现优先队列在python中应支持的insert,maximum,extract-max,increment-max,recrement-key?

1 个答案:

答案 0 :(得分:0)

AVL树只是平衡的二进制搜索树。您所询问的堆操作可以使用标准AVL操作轻松实现。

  • 插入-只需像往常一样插入到AVL树中即可。
  • 最大-我假设您的意思是find-max。 AVL树中的最大元素是最右边的节点。因此,只需从根开始,向右移动指针到末尾,然后返回叶节点。
  • extract-max-如上所述找到最大节点,并将其删除。
  • 增加键和减少键-执行标准的二叉树搜索以找到您感兴趣的节点。将其从树中删除。修改密钥。重新插入树中。

请注意,这不会像二进制堆优先级队列那样高效,但是它可以工作。