读懂堆的上筛和下筛函数

1.
读懂最小堆heap_sift_down()和heap_sift_up()函数，前者用于删除堆顶元素，后者用于添加新元素。都用来维护最小堆的性质，在找到合适的位置后才停止迭代；
2. 温习堆的知识。堆应看做完全二叉树，每片叶子具有相同的深度，每个内部节点的度都是2；
3. 学习优先队列的知识。它是一种队首元素始终保持队中最大元素的STL模板。