数据结构与算法第六章_优先队列(堆)课稿.ppt

数据结构与算法第六章_优先队列(堆)课稿.ppt

第六章 优先队列(堆) 本章纲要 1.优先队列模型 2.二叉堆 3.优先队列的应用 4.d-堆 5.左式堆 6.斜堆 7.二项队列 1.优先队列模型 队列 FIFO 排队等候买票 优先级 例如,救护车过红灯 对队列而言,队首元素先出队,暗含了队首优先级最高。 1.优先队列模型 优先队列 队列中元素具有不同的优先级,优先级高的元素先出队(deque) 遵守队列队首先出队的规则 因此,在优先队列中,优先级最高的元素应在队首。 入队(enque)?插入(insert) 出队(deque)?(deletemin) 1.优先队列模型 实现 链表 数组 二叉查找树 2.二叉堆 若有n个关键字的集合K={k1,k2, …,kn}将其所有元素按完全二叉树的顺序存贮方式存于一个一维数组中,并且满足以下条件,则该集合称为最小堆(或最大堆)。 ki≤k2i和ki≤k2i+1 或 ki≥k2i和ki≥k2i+1 ( 其中,i = 1,2, …?(n – 1) / 2? ) 2.二叉堆 高为h的完全二叉树有2h到2h+1-1个节点,完全二叉树的高为O(logN) 完全二叉树的数组存储 2.二叉堆 ADT 假设关键字越小,优先级越高 初始化 2.二叉堆 插入(insert)(上滤) 新元素插到堆的后面,这样可能破坏了堆序性。 为恢复堆序性,从插入元素双亲开始逐层向上筛选。 2.二叉堆 D

文档评论(0)

1亿VIP精品文档

相关文档