`
遛遛遛
  • 浏览: 52275 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

【转】Java 数据结构-堆实现

    博客分类:
  • java
阅读更多

原创链接:http://my.oschina.net/BreathL/blog/71602

  堆的定义:有如下性质的完全二叉树:任意节点X所处的项的关键字大于或等于以X为根的子数中的所有节点出的项的关键字。

     意义在于,在数据结构中,其常常被用作优先级队列的结构,其意义是每次从队列中获取的元素,总是最满足某个条件的;比如最大的元素;再例如先进先出队列所满足的特定条件就是,具备放入队列时间最早的那个元素。

     堆实现的主要操作就是 插入和 删除(移除并获取那个最符合条件的元素)。先简单描述下逻辑

     插入:1.   将新插入的元素,放置到队列的尾部。

              2.    若该元素大于其父节点,两个元素互换。(上移操作)

              3.    循环第2步,直至该元素没有父节点或小于其父节点。

     删除:1.    移掉顶部的节点。

              2.    将队末的元素放置到顶部。

              3.    该节点与其子节点中较大的那个比较,若小于它,则交换位置,(下移操作)

              4.    循环第3步,直到叶节点或不再比其子节点中较大那个小。

     若是最小堆,比较都反过来。

分享到:
评论

相关推荐

    数据结构-从应用到实现 (java版)

    《计算机科学丛书·数据结构从应用到实现(Java版)》系统地介绍了数据结构以及数据结构与对象之间的联系。主要内容包括:算法效率的输入规模、阶和大O,数据结构的无序和有序列表,队列和栈基于数组和链表的设计实例...

    基础算法与数据结构 -- Java 实现.zip

    算法与数据结构它们分别涵盖了以下主要内容: 数据结构(Data Structures): 逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树)、图结构(有向图、无向图等)...

    数据结构堆排序的java算法实现

    数据结构堆排序的java算法实现,里面用java语言实现了堆排序的算法实现,有输入和输出结果

    数据结构与问题求解Java语言

    本书的目的是从抽象思维和问题求解的观点提供对数据结构的实用介绍,试图包含有关数据结构、算法分析及其Java实现的所有重要的细节。作者采用了独特的方法将数据结构分成说明和实现两部分,并充分利用了已有的数据...

    数据结构与算法分析_java语言描述

    本书的目的是从抽象思维和问题求解的观点提供对数据结构的实用介绍,试图包含有关数据结构、算法分析及其Java实现的所有重要的细节。作者采用了独特的方法将数据结构分成说明和实现两部分,并充分利用了已有的数据...

    Java数据结构和算法中文第二版(1)

    Java数据结构和算法中文第二版(1) Java数据结构和算法中文第二版(2) 【内容简介】 本书可帮助读者: 通过由基于JAVA的演示所组成的可视专题讨论来掌握数据结构和算法 学会如何为常见和不太常见的编程条件选择...

    java数据结构和算法实现.zip

    算法与数据结构涵盖了以下主要内容: 数据结构(Data Structures): 逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树)、图结构(有向图、无向图等)以及集合和...

    Java数据结构与算法中的源代码和applet - 站长下载

    书名:数据结构Java版 图书编号:2086963 出版社:清华大学 定价:118.0 ISBN:730213544 作者:(美)福特(Ford,W.H.),(美)托普(Topp,W.R.) 著,梁志敏 译 出版日期:2006-11-11 版次: 开本: 简介: 本书...

    Java写的数据结构(堆,栈,单链表,双链表)程序!有详细注释!

    Java写的数据结构(堆,栈,单链表,双链表)程序!有详细注释! 模拟数据结构,写的自己的堆,栈,单链表,双链表,对数据结构的理解很有帮助哦,且全部通过测试了!

    JAVA 2平台安全技术-结构,API设计和实现

    并在此基础上,详细描述了Java 2平台中新增加的许多安全结构方面的措施,同时对Java安全性的实施提出了使用指导,描绘了如何定制、扩展和精化安全结构以及成功实现的技术细节。本书为建立安全、有效、强大和可移植的...

    Java超详细!Java实现数据结构PPT课件

    线性数据结构动态数组(ArrayList) 链表(LinkedList) 单向链表 双向链表 循环链表 静态链表 栈(Stack) 队列(Queue) 双端队列(Deque) 循环队列 哈希表(HashTable) 树形数据结构 二叉树(BinaryTree)、...

    常用数据结构及其算法的Java实现

    本项目主要使用Java实现各种经典常用数据结构及其算法,包括但不仅限于链表、栈,队列,树,图等经典数据结构。 八大排序算法及其实现,具体包括直接插入排序,希尔排序,直接选择排序,堆排序,冒泡排序,快速排序...

    基于java语言的数据结构及算法实现,LeetCode算法示例.zip

    笔记:详细且系统的笔记,涵盖了数据结构的各个方面,从基础概念到复杂的数据结构如堆、B树等。这些笔记有助于你系统地复习和学习数据结构。 相关书籍推荐:为了更深入地理解数据结构,我们推荐了几本经典的教材和...

    AIC的Java课程1-6章

    本课程面向的学员应该具有基本的编程概念,能够编写简单的程序,并学习过操作系统,数据结构等计算机理论知识。课程选用最新的JDK5.0版本作为开发平台,教学的宗旨是:激发兴趣,理解知识,树立面向对象编程思维。 ...

    Java数据结构与算法源代码

    指某些著名的数据结构和算法,如:列,栈,堆,二分查找,动态规划等。 3.数据结构和算法的关系: 数据结构和算法是相辅相成的。数据结构是为算法服务的,算法是要作用在特定的数据结构上。 三。学习的重点 1....

    医院手术安排管理程序(数据结构java)

    数据结构 使用最小堆实现优先队列来管理手术病人信息(身份证号、姓名、性别、手术允许等待期限),实现病人信息的录入, 病人的手术安排,查看下一个进行手术的病人信息, 正在等待手术的病人的数量和退出程序.

    常用数据结构java实现

    采用java实现,实现了常用的数据结构,包括顺序表、链表、队列、栈(数组实现和链表实现)、二叉树(二叉排序树)、图(深度优先、广度优先)

    Java数据结构和算法中文第二版(2)

    Java数据结构的类库 小结 问题 第2章 数组 Array专题Applet Java中数组的基础知识 将程序划分成类 类接口 Ordered专题applet 有序数组的Java代码 对数 存储对象 大O表示法 为什么不用数组表示一切? ...

    数据结构与算法分析Java语言描述(第二版)

    摊还分析11.1 一个无关的智力问题11.2 二项队列11.3 斜堆11.4 斐波那契堆11.4.1 切除左式堆中的节点11.4.2 二项队列的懒惰合并11.4.3 斐波那契堆操作11.4.4 时间界的证明11.5 伸展树小结练习参考文献第12章 高级...

Global site tag (gtag.js) - Google Analytics