文档章节

堆和栈(Java数据结构)

晓阳
 晓阳
发布于 2015/10/14 13:23
字数 546
阅读 78
收藏 0

常见使用场景:

(英语:heap)亦被称为: 优先队列 (英语:priority queue),是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。在队列中,调度程序反复提取队列中第一个作业并运行,因而实际情况中某些时间较短的任务将等待很长时间才能结束,或者某些不短小,但具有重要性的作业,同样应当具有优先权。堆即为解决此类问题设计的一种数据结构。

n个元素序列{k1,k2...ki...kn},当且仅当满足下列关系时称之为堆: 
(ki <= k2i,ki <= k2i+1)或者(ki >= k2i,ki >= k2i+1), (i = 1,2,3,4...n/2) 

性质 :

堆的实现通过构造二叉堆(binary heap),实为二叉树的一种;由于其应用的普遍性,当不加限定时,均指该数据结构的这种实现。这种数据结构具有以下 性 质。 任意节点小于它的所有后裔,最小元在堆的根上(堆序性)。堆总是一棵完全树。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。

堆栈(栈)

(英语:stack),也可直接称栈。在计算机科学中,是一种特殊的串行形式的数据结构,它的特殊之处在于只能允许在链结串行或阵列的一端(称为堆栈顶端指标,英语:top)进行加入资料(英语:push)和输出资料(英语:pop)的运算。 

由于堆栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。 
堆栈数据结构使用两种基本操作:推入(push)和弹出(pop): 
推入:将数据放入堆栈的顶端(阵列形式或串行形式),堆栈顶端top指标加一。 
弹出:将顶端数据资料输出(回传),堆栈顶端资料减一。 


本文转载自:http://www.tuicool.com/articles/nyaq6zq

共有 人打赏支持
晓阳
粉丝 10
博文 69
码字总数 52360
作品 0
徐汇
程序员
私信 提问
JVM系列第6讲:Java 虚拟机内存结构

看到这里,我相信大家对于一个 Java 源文件是如何变成字节码文件,以及字节码文件的含义已经非常清楚了。那么接下来就是让 Java 虚拟机运行字节码文件,从而得出我们最终想要的结果了。在这个...

陈树义
11/16
0
0
JVM基础:深入学习JVM堆与JVM栈

以前堆是干啥栈是干啥都知道,就是没连在一起想想。感觉讲的不错的一篇儿~~JVM栈解决程序的运行问题,即程序如何执行,或者说如何处理数据;JVM堆解决的是数据存储的问题,即数据怎么放、放在...

李星
2014/06/04
0
0
《深入理解Java虚拟机》之Java虚拟机内存结构(1)

这个是很重要的一个基础认识。 java虚拟机规范规定的java虚拟机内存其实就是java虚拟机运行时数据区,其架构如下: 其中方法区和堆是由所有线程共享的数据区。 Java虚拟机栈,本地方法栈和程...

lixiyuan
2014/04/10
0
1
Java虚拟机内存管理(一)—内存划分

Java 与 C++ 之间有一堵由内存动态分配和垃圾收集技术所围成的 “高墙”,墙外面的人想进去,墙里面的人却想出来。——《深入理解Java虚拟机:JVM高级特性与最佳时实践(第二版)》周志明 Ja...

Wizey
08/30
0
0
Java虚拟机运行时数据区结构

本文部分参考自《Java虚拟机规范(Java SE 7版)》的中译本和周志明的《深入理解Java虚拟机》,另加个人理解。原书对Java虚拟机运行时数据区描述只有6页,同时参考其他网络网资料,个人能力所...

foodon
2014/12/09
0
4

没有更多内容

加载失败,请刷新页面

加载更多

新技术不断涌现,下一代云计算的突破口在哪里?

这是一个IT技术飞速发展的时代,在硬件基础设施的不断升级以及虚拟化网络等技术的日益成熟下,云厂商也正面临着各种新技术带来的巨大挑战。从数据中心的基础建设到云平台的系统构建再到产品底...

UCloudTech
16分钟前
1
0
走进阿里云物联网

课程介绍: 阿里云IoT,致力于实现万物互联的美好世界,为生态合作伙伴提供基于云边端一体化、人工智能、安全的物联网基础平台和内容服务能力平台,通过该平台高效连接、管理设备的同时,开放...

mcy0425
23分钟前
1
0
Kylin2.5.0环境搭建及操作记录

Apache Kylin是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区。它能在亚秒内查询巨大的H...

PeakFang-BOK
32分钟前
2
0
SpringBoot整合es

文档对像 @Document(indexName = "bigdata",type = "tag")public class User { @Idprivate String openid; private List<String> tags;public String getOpenid() ......

魔法王者安琪拉
36分钟前
1
0
windows下让 jar 在后台运行的办法

windows下 运行 java jar 不出现 命令行 窗口 新建一个披处理 run.bat,内容如下 @echo off start javaw -jar xx.jar exit 双击运行即可。...

glen_xu
45分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部