挑战程序设计竞赛11.2
2016-11-02 本文已影响17人
程序员一飞
今天读了如何实现优先队列,及如何运用。可以用数组来表示二叉树,节点是从上到下从左到右的顺序紧凑排列,它最重要的性质是儿子的值一定大于等于父亲的值。push的时候先加到最后一个节点上,然后向上对比,不满足条件就交换,直到满足条件。pop的时候每次返回下标为0的节点,然后将最后一个节点的值拿到第一个节点的位置,然后向下交换,直到位置合适。STL里面有直接用的priority_queue。
今天读了如何实现优先队列,及如何运用。可以用数组来表示二叉树,节点是从上到下从左到右的顺序紧凑排列,它最重要的性质是儿子的值一定大于等于父亲的值。push的时候先加到最后一个节点上,然后向上对比,不满足条件就交换,直到满足条件。pop的时候每次返回下标为0的节点,然后将最后一个节点的值拿到第一个节点的位置,然后向下交换,直到位置合适。STL里面有直接用的priority_queue。