acm-优先队列
优先队列 堆 左高树 应用 (堆排序 机器调度 霍夫曼编码) 1 引言 定义[优先队列] 优先队列(priority queue)是0个或多个元素的集合,每个元素都有一个优先权或值,对优先队列执行的操作有 1) 查找;2) 插入一个新元素;3) 删除。 最小优先队列( min priority queue):查找操作用来搜索优先权最小的元素,删除操作用来删除该元素 最大优先队列(max priority queue):查找操作用来搜索优先权最大的元素,删除操作用来删除该元素。 1 引言 最大优先队列的抽象数据类型描述 抽象数据类型MaxPriorityQueue{ 实例 有限的元素集合,每个元素都有一个优先权 操作 Create ( ):创建一个空的优先队列 Size ( ):返回队列中的元素数目 Max ( ):返回具有最大优先权的元素 Insert (x):将x 插入队列 DeleteMax (x):从队列中删除具有最大优先权的元素,并将该元素返回至x } 2 线性表 采用无序线性表 假设有一个具有n 个元素的优先队列,那么插入操作可以十分容易地在表的右端末尾执行,插入所需时间为?( 1 )。删除操作时必须查找优先权最大的元素,即在未排序的n 个元素中查找具有最大优先权的元素,所以删除操作所需时间为?(n)。如果利用链表,插入操作在链头执行,时间为?( 1 ),而每个删除操作所需时间为?(n)。 采用有序线性表 元素按递增次序排列,使用链表时则按递减次序排列,这两种描述方法的删除时间均为?( 1 ),插入操作所需时间为?(n)。 3 堆 定义 定义[最大树(最小树)] 每个节点的值都大于(小于)或等于其子节点(如果有的话)值的树。 3 堆 定义[最大堆(最小堆)] 最大(最小)的完全二叉树。 3 堆 最大堆的插入 3 堆 最大堆的删除 3 堆 最大堆的初始化 9.3 堆 3 堆 类MaxHeap templateclass T class MaxHeap { public : MaxHeap(int MaxHeapSize = 10); ~MaxHeap() {delete [] heap;} int Size() const {return CurrentSize;} T Max() {if (CurrentSize == 0) throw OutOfBounds(); return heap[1];} MaxHeapT Insert(const T x); MaxHeapT DeleteMax(T x); void Initialize(T a[], int size, int ArraySize); private : int CurrentSize, MaxSize; T *heap; // 元素数组 } 3 堆 最大堆的插入 templateclass T MaxHeapT MaxHeapT::Insert(const T x) {// 把x 插入到最大堆中 if (CurrentSize == MaxSize) throw NoMem(); // 没有足够空间 / /为x寻找应插入位置 // i 从新的叶节点开始,并沿着树上升 int i = ++CurrentSize; while (i != 1 x heap[i/2]) { // 不能够把x 放入h e a p [ i ] heap[i] = heap[i/2]; // 将元素下移 i /= 2; // 移向父节点 } heap[i] = x; return *this;} 3 堆 最大堆的删除 templateclass T MaxHeapT MaxHeapT::DeleteMax(T x) {// 将最大元素放入x ,并从堆中删除最大元素 // 检查堆是否为空 if (CurrentSize == 0) throw OutOfBounds(); // 队列空 x = heap[1]; // 最大元素 // 重构堆 T y = heap[CurrentSize--]; // 最后一个元素 // 从根开始,为y 寻找合适的位置 int i = 1, // 堆的当前节点 ci = 2; // i的孩子 3 堆 while (ci = CurrentSize) { // heap[ci] 应是i的较大的孩子 i
您可能关注的文档
- AA安全操作规程交底.doc
- (最初稿)创新概要.ppt
- AB-PLC实操.ppt
- AAA级2013年学生活动新闻工作总结.docx
- (林海杨玉红版)食品营养与卫生第一章第三节糖类化合物概要.ppt
- ABB CU制动单元使用手册.doc
- AB plc5资料.ppt
- AAA高三地理_综合题_地理特征和分布规律的描述.ppt
- (新品牌)冰山矿泉水营销策划概要.ppt
- ABB定位器维护规程.docx
- 某镇领导班子2025年度民主生活会对照检查材料.docx
- 高级中学党政办公室主任2025年度述职述廉报告.docx
- 在镇“锤炼作风提效能,凝心聚力建新功”主题春训活动动员部署会上的讲话.docx
- 在2026年春季开学教职工会议上的讲话.docx
- 公司党支部2025年度组织生活会对照检查材料.docx
- 在树立和践行正确政绩观学习教育动员部署会议上的讲话.docx
- 专题党课:筑牢作风“防火墙” 展现司法新担当.docx
- 在树立和践行正确政绩观学习教育专题研讨会上的发言材料.docx
- 在公司2026年度党建暨党风廉政大会上的讲话.docx
- 在县委党的建设工作领导小组会议上关于开展树立和践行正确政绩观学习教育部署工作的讲话.docx
最近下载
- 六年级数学下册 正反比例判断练习(一)人教版.docx VIP
- 年处理3000吨钕铁硼废料提取稀土氧化钕与氧化铁的工厂初步设计毕业设计.pdf VIP
- 2025图像采集系统技术规范.docx VIP
- RD-3-003产品安规认证作业指导书00.doc VIP
- 急性凝血功能异常的诊断与处理.ppt VIP
- 江苏省会计基础工作规范实施细则全文.docx VIP
- 市场营销实务中职PPT全套教学课件.pptx VIP
- 2026年国家电网招聘之公共与行业知识考试题库500道附完整答案(网校专用).docx VIP
- 2021 年一级建造师考试建设工程法规及相关知识提分笔记.docx VIP
- (高清版)B-T 2408-2021 塑料 燃烧性能的测定 水平法和垂直法.pdf VIP
原创力文档

文档评论(0)