如何删除二叉堆的任意一个节点

swap(A.pop(), A[i]);   #将最后一个元素换到要删除元素的位置
up(A[i]);              #大顶堆的情况下,如果可以执行上浮选项说明比父节点还大,直接上浮到正确位置即可
sink(A[i]);            #如果比子节点小,则下沉到合适位置即可

版权声明:本文为weixin_44392348原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。