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